package org.xtext.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.xtext.services.AstraGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class InternalAstraParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_INTEGER", "RULE_LONG", "RULE_FLOAT", "RULE_DOUBLE", "RULE_IDENTIFIER", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "'Beliefs'", "'Rules'", "'Plans'", "'final'", "'private'", "'overrides'", "'abstract'", "'implements'", "'=='", "'!='", "'>'", "'<'", "'<='", "'>='", "'+'", "'-'", "'*'", "'/'", "'%'", "'start'", "'stop'", "'agentUnitTest'", "'{'", "'}'", "'testagent'", "';'", "'testcase'", "'.'", "'run'", "'('", "')'", "'assertEquals'", "','", "'assertTrue'", "'assertFalse'", "'verify'", "'beliefs'", "'['", "']'", "'belief'", "'plan'", "'event'", "'goal'", "'rule'", "':'", "'agent'", "'extends'", "'initial'", "'!'", "'function'", "'&'", "'@message'", "'import'", "'count'", "'list'", "'|'", "'object'", "'='", "'synchronized'", "'foreach'", "'send'", "'eis_setup'", "'eis_perform'", "'if'", "'else'", "'query'", "'active'", "'wait'", "'when'", "'while'", "'->'", "'~'", "'int'", "'long'", "'float'", "'double'", "'string'", "'char'", "'boolean'"
    };
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int EOF=-1;
    public static final int T__19=19;
    public static final int T__91=91;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__90=90;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int T__80=80;
    public static final int T__81=81;
    public static final int T__82=82;
    public static final int T__83=83;
    public static final int T__85=85;
    public static final int T__84=84;
    public static final int T__87=87;
    public static final int T__86=86;
    public static final int T__89=89;
    public static final int T__88=88;
    public static final int RULE_ML_COMMENT=10;
    public static final int RULE_STRING=4;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int T__70=70;
    public static final int T__76=76;
    public static final int T__75=75;
    public static final int T__74=74;
    public static final int T__73=73;
    public static final int T__79=79;
    public static final int RULE_INTEGER=5;
    public static final int T__78=78;
    public static final int T__77=77;
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int T__64=64;
    public static final int T__65=65;
    public static final int T__62=62;
    public static final int T__63=63;
    public static final int T__61=61;
    public static final int T__60=60;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int T__59=59;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int RULE_LONG=6;
    public static final int T__49=49;
    public static final int RULE_IDENTIFIER=9;
    public static final int RULE_FLOAT=7;
    public static final int RULE_SL_COMMENT=11;
    public static final int RULE_DOUBLE=8;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=12;

    // delegates
    // delegators


        public InternalAstraParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalAstraParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalAstraParser.tokenNames; }
    public String getGrammarFileName() { return "../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g"; }


     
     	private AstraGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(AstraGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleAstra"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:61:1: entryRuleAstra : ruleAstra EOF ;
    public final void entryRuleAstra() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:62:1: ( ruleAstra EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:63:1: ruleAstra EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAstraRule()); 
            }
            pushFollow(FOLLOW_ruleAstra_in_entryRuleAstra67);
            ruleAstra();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAstraRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAstra74); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAstra"


    // $ANTLR start "ruleAstra"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:70:1: ruleAstra : ( ( rule__Astra__Alternatives ) ) ;
    public final void ruleAstra() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:74:2: ( ( ( rule__Astra__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:75:1: ( ( rule__Astra__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:75:1: ( ( rule__Astra__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:76:1: ( rule__Astra__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAstraAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:77:1: ( rule__Astra__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:77:2: rule__Astra__Alternatives
            {
            pushFollow(FOLLOW_rule__Astra__Alternatives_in_ruleAstra100);
            rule__Astra__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAstraAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAstra"


    // $ANTLR start "entryRuleAgentUnitTest"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:89:1: entryRuleAgentUnitTest : ruleAgentUnitTest EOF ;
    public final void entryRuleAgentUnitTest() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:90:1: ( ruleAgentUnitTest EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:91:1: ruleAgentUnitTest EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestRule()); 
            }
            pushFollow(FOLLOW_ruleAgentUnitTest_in_entryRuleAgentUnitTest127);
            ruleAgentUnitTest();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAgentUnitTest134); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAgentUnitTest"


    // $ANTLR start "ruleAgentUnitTest"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:98:1: ruleAgentUnitTest : ( ( rule__AgentUnitTest__Group__0 ) ) ;
    public final void ruleAgentUnitTest() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:102:2: ( ( ( rule__AgentUnitTest__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:103:1: ( ( rule__AgentUnitTest__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:103:1: ( ( rule__AgentUnitTest__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:104:1: ( rule__AgentUnitTest__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:105:1: ( rule__AgentUnitTest__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:105:2: rule__AgentUnitTest__Group__0
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__0_in_ruleAgentUnitTest160);
            rule__AgentUnitTest__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAgentUnitTest"


    // $ANTLR start "entryRuleTestAgent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:117:1: entryRuleTestAgent : ruleTestAgent EOF ;
    public final void entryRuleTestAgent() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:118:1: ( ruleTestAgent EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:119:1: ruleTestAgent EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRule()); 
            }
            pushFollow(FOLLOW_ruleTestAgent_in_entryRuleTestAgent187);
            ruleTestAgent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestAgent194); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestAgent"


    // $ANTLR start "ruleTestAgent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:126:1: ruleTestAgent : ( ( rule__TestAgent__Group__0 ) ) ;
    public final void ruleTestAgent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:130:2: ( ( ( rule__TestAgent__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:131:1: ( ( rule__TestAgent__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:131:1: ( ( rule__TestAgent__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:132:1: ( rule__TestAgent__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:133:1: ( rule__TestAgent__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:133:2: rule__TestAgent__Group__0
            {
            pushFollow(FOLLOW_rule__TestAgent__Group__0_in_ruleTestAgent220);
            rule__TestAgent__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestAgent"


    // $ANTLR start "entryRuleTestCase"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:145:1: entryRuleTestCase : ruleTestCase EOF ;
    public final void entryRuleTestCase() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:146:1: ( ruleTestCase EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:147:1: ruleTestCase EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseRule()); 
            }
            pushFollow(FOLLOW_ruleTestCase_in_entryRuleTestCase247);
            ruleTestCase();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestCase254); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestCase"


    // $ANTLR start "ruleTestCase"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:154:1: ruleTestCase : ( ( rule__TestCase__Group__0 ) ) ;
    public final void ruleTestCase() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:158:2: ( ( ( rule__TestCase__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:159:1: ( ( rule__TestCase__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:159:1: ( ( rule__TestCase__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:160:1: ( rule__TestCase__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:161:1: ( rule__TestCase__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:161:2: rule__TestCase__Group__0
            {
            pushFollow(FOLLOW_rule__TestCase__Group__0_in_ruleTestCase280);
            rule__TestCase__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestCase"


    // $ANTLR start "entryRuleTestStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:173:1: entryRuleTestStatement : ruleTestStatement EOF ;
    public final void entryRuleTestStatement() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:174:1: ( ruleTestStatement EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:175:1: ruleTestStatement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestStatementRule()); 
            }
            pushFollow(FOLLOW_ruleTestStatement_in_entryRuleTestStatement307);
            ruleTestStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestStatementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestStatement314); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestStatement"


    // $ANTLR start "ruleTestStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:182:1: ruleTestStatement : ( ( rule__TestStatement__Group__0 ) ) ;
    public final void ruleTestStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:186:2: ( ( ( rule__TestStatement__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:187:1: ( ( rule__TestStatement__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:187:1: ( ( rule__TestStatement__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:188:1: ( rule__TestStatement__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestStatementAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:189:1: ( rule__TestStatement__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:189:2: rule__TestStatement__Group__0
            {
            pushFollow(FOLLOW_rule__TestStatement__Group__0_in_ruleTestStatement340);
            rule__TestStatement__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestStatementAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestStatement"


    // $ANTLR start "entryRuleTestOperation"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:201:1: entryRuleTestOperation : ruleTestOperation EOF ;
    public final void entryRuleTestOperation() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:202:1: ( ruleTestOperation EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:203:1: ruleTestOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestOperationRule()); 
            }
            pushFollow(FOLLOW_ruleTestOperation_in_entryRuleTestOperation367);
            ruleTestOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestOperationRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestOperation374); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestOperation"


    // $ANTLR start "ruleTestOperation"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:210:1: ruleTestOperation : ( ( rule__TestOperation__Alternatives ) ) ;
    public final void ruleTestOperation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:214:2: ( ( ( rule__TestOperation__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:215:1: ( ( rule__TestOperation__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:215:1: ( ( rule__TestOperation__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:216:1: ( rule__TestOperation__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestOperationAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:217:1: ( rule__TestOperation__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:217:2: rule__TestOperation__Alternatives
            {
            pushFollow(FOLLOW_rule__TestOperation__Alternatives_in_ruleTestOperation400);
            rule__TestOperation__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestOperationAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestOperation"


    // $ANTLR start "entryRuleTestAgentRun"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:229:1: entryRuleTestAgentRun : ruleTestAgentRun EOF ;
    public final void entryRuleTestAgentRun() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:230:1: ( ruleTestAgentRun EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:231:1: ruleTestAgentRun EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunRule()); 
            }
            pushFollow(FOLLOW_ruleTestAgentRun_in_entryRuleTestAgentRun427);
            ruleTestAgentRun();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestAgentRun434); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestAgentRun"


    // $ANTLR start "ruleTestAgentRun"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:238:1: ruleTestAgentRun : ( ( rule__TestAgentRun__Group__0 ) ) ;
    public final void ruleTestAgentRun() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:242:2: ( ( ( rule__TestAgentRun__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:243:1: ( ( rule__TestAgentRun__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:243:1: ( ( rule__TestAgentRun__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:244:1: ( rule__TestAgentRun__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:245:1: ( rule__TestAgentRun__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:245:2: rule__TestAgentRun__Group__0
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group__0_in_ruleTestAgentRun460);
            rule__TestAgentRun__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestAgentRun"


    // $ANTLR start "entryRuleTestAgentRunItem"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:257:1: entryRuleTestAgentRunItem : ruleTestAgentRunItem EOF ;
    public final void entryRuleTestAgentRunItem() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:258:1: ( ruleTestAgentRunItem EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:259:1: ruleTestAgentRunItem EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemRule()); 
            }
            pushFollow(FOLLOW_ruleTestAgentRunItem_in_entryRuleTestAgentRunItem487);
            ruleTestAgentRunItem();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestAgentRunItem494); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestAgentRunItem"


    // $ANTLR start "ruleTestAgentRunItem"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:266:1: ruleTestAgentRunItem : ( ( rule__TestAgentRunItem__Alternatives ) ) ;
    public final void ruleTestAgentRunItem() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:270:2: ( ( ( rule__TestAgentRunItem__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:271:1: ( ( rule__TestAgentRunItem__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:271:1: ( ( rule__TestAgentRunItem__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:272:1: ( rule__TestAgentRunItem__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:273:1: ( rule__TestAgentRunItem__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:273:2: rule__TestAgentRunItem__Alternatives
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__Alternatives_in_ruleTestAgentRunItem520);
            rule__TestAgentRunItem__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestAgentRunItem"


    // $ANTLR start "entryRuleTestAssert"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:285:1: entryRuleTestAssert : ruleTestAssert EOF ;
    public final void entryRuleTestAssert() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:286:1: ( ruleTestAssert EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:287:1: ruleTestAssert EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAssertRule()); 
            }
            pushFollow(FOLLOW_ruleTestAssert_in_entryRuleTestAssert547);
            ruleTestAssert();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAssertRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestAssert554); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestAssert"


    // $ANTLR start "ruleTestAssert"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:294:1: ruleTestAssert : ( ( rule__TestAssert__Alternatives ) ) ;
    public final void ruleTestAssert() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:298:2: ( ( ( rule__TestAssert__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:299:1: ( ( rule__TestAssert__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:299:1: ( ( rule__TestAssert__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:300:1: ( rule__TestAssert__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAssertAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:301:1: ( rule__TestAssert__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:301:2: rule__TestAssert__Alternatives
            {
            pushFollow(FOLLOW_rule__TestAssert__Alternatives_in_ruleTestAssert580);
            rule__TestAssert__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAssertAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestAssert"


    // $ANTLR start "entryRuleTestEquals"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:313:1: entryRuleTestEquals : ruleTestEquals EOF ;
    public final void entryRuleTestEquals() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:314:1: ( ruleTestEquals EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:315:1: ruleTestEquals EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsRule()); 
            }
            pushFollow(FOLLOW_ruleTestEquals_in_entryRuleTestEquals607);
            ruleTestEquals();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestEquals614); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestEquals"


    // $ANTLR start "ruleTestEquals"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:322:1: ruleTestEquals : ( ( rule__TestEquals__Group__0 ) ) ;
    public final void ruleTestEquals() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:326:2: ( ( ( rule__TestEquals__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:327:1: ( ( rule__TestEquals__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:327:1: ( ( rule__TestEquals__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:328:1: ( rule__TestEquals__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:329:1: ( rule__TestEquals__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:329:2: rule__TestEquals__Group__0
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__0_in_ruleTestEquals640);
            rule__TestEquals__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestEquals"


    // $ANTLR start "entryRuleTestAgentProperity"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:341:1: entryRuleTestAgentProperity : ruleTestAgentProperity EOF ;
    public final void entryRuleTestAgentProperity() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:342:1: ( ruleTestAgentProperity EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:343:1: ruleTestAgentProperity EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityRule()); 
            }
            pushFollow(FOLLOW_ruleTestAgentProperity_in_entryRuleTestAgentProperity667);
            ruleTestAgentProperity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestAgentProperity674); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestAgentProperity"


    // $ANTLR start "ruleTestAgentProperity"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:350:1: ruleTestAgentProperity : ( ( rule__TestAgentProperity__Group__0 ) ) ;
    public final void ruleTestAgentProperity() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:354:2: ( ( ( rule__TestAgentProperity__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:355:1: ( ( rule__TestAgentProperity__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:355:1: ( ( rule__TestAgentProperity__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:356:1: ( rule__TestAgentProperity__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:357:1: ( rule__TestAgentProperity__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:357:2: rule__TestAgentProperity__Group__0
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__Group__0_in_ruleTestAgentProperity700);
            rule__TestAgentProperity__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestAgentProperity"


    // $ANTLR start "entryRuleTestTrue"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:369:1: entryRuleTestTrue : ruleTestTrue EOF ;
    public final void entryRuleTestTrue() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:370:1: ( ruleTestTrue EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:371:1: ruleTestTrue EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueRule()); 
            }
            pushFollow(FOLLOW_ruleTestTrue_in_entryRuleTestTrue727);
            ruleTestTrue();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestTrue734); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestTrue"


    // $ANTLR start "ruleTestTrue"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:378:1: ruleTestTrue : ( ( rule__TestTrue__Group__0 ) ) ;
    public final void ruleTestTrue() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:382:2: ( ( ( rule__TestTrue__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:383:1: ( ( rule__TestTrue__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:383:1: ( ( rule__TestTrue__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:384:1: ( rule__TestTrue__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:385:1: ( rule__TestTrue__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:385:2: rule__TestTrue__Group__0
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__0_in_ruleTestTrue760);
            rule__TestTrue__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestTrue"


    // $ANTLR start "entryRuleTestFalse"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:397:1: entryRuleTestFalse : ruleTestFalse EOF ;
    public final void entryRuleTestFalse() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:398:1: ( ruleTestFalse EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:399:1: ruleTestFalse EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseRule()); 
            }
            pushFollow(FOLLOW_ruleTestFalse_in_entryRuleTestFalse787);
            ruleTestFalse();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestFalse794); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestFalse"


    // $ANTLR start "ruleTestFalse"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:406:1: ruleTestFalse : ( ( rule__TestFalse__Group__0 ) ) ;
    public final void ruleTestFalse() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:410:2: ( ( ( rule__TestFalse__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:411:1: ( ( rule__TestFalse__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:411:1: ( ( rule__TestFalse__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:412:1: ( rule__TestFalse__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:413:1: ( rule__TestFalse__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:413:2: rule__TestFalse__Group__0
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__0_in_ruleTestFalse820);
            rule__TestFalse__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestFalse"


    // $ANTLR start "entryRuleTestCondition"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:425:1: entryRuleTestCondition : ruleTestCondition EOF ;
    public final void entryRuleTestCondition() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:426:1: ( ruleTestCondition EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:427:1: ruleTestCondition EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestConditionRule()); 
            }
            pushFollow(FOLLOW_ruleTestCondition_in_entryRuleTestCondition847);
            ruleTestCondition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestConditionRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestCondition854); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestCondition"


    // $ANTLR start "ruleTestCondition"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:434:1: ruleTestCondition : ( ( rule__TestCondition__Alternatives ) ) ;
    public final void ruleTestCondition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:438:2: ( ( ( rule__TestCondition__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:439:1: ( ( rule__TestCondition__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:439:1: ( ( rule__TestCondition__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:440:1: ( rule__TestCondition__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestConditionAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:441:1: ( rule__TestCondition__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:441:2: rule__TestCondition__Alternatives
            {
            pushFollow(FOLLOW_rule__TestCondition__Alternatives_in_ruleTestCondition880);
            rule__TestCondition__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestConditionAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestCondition"


    // $ANTLR start "entryRuleTestVerify"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:453:1: entryRuleTestVerify : ruleTestVerify EOF ;
    public final void entryRuleTestVerify() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:454:1: ( ruleTestVerify EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:455:1: ruleTestVerify EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyRule()); 
            }
            pushFollow(FOLLOW_ruleTestVerify_in_entryRuleTestVerify907);
            ruleTestVerify();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestVerify914); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestVerify"


    // $ANTLR start "ruleTestVerify"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:462:1: ruleTestVerify : ( ( rule__TestVerify__Group__0 ) ) ;
    public final void ruleTestVerify() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:466:2: ( ( ( rule__TestVerify__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:467:1: ( ( rule__TestVerify__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:467:1: ( ( rule__TestVerify__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:468:1: ( rule__TestVerify__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:469:1: ( rule__TestVerify__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:469:2: rule__TestVerify__Group__0
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__0_in_ruleTestVerify940);
            rule__TestVerify__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestVerify"


    // $ANTLR start "entryRuleTestDefinition"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:481:1: entryRuleTestDefinition : ruleTestDefinition EOF ;
    public final void entryRuleTestDefinition() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:482:1: ( ruleTestDefinition EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:483:1: ruleTestDefinition EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestDefinitionRule()); 
            }
            pushFollow(FOLLOW_ruleTestDefinition_in_entryRuleTestDefinition967);
            ruleTestDefinition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestDefinitionRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestDefinition974); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestDefinition"


    // $ANTLR start "ruleTestDefinition"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:490:1: ruleTestDefinition : ( ( rule__TestDefinition__Alternatives ) ) ;
    public final void ruleTestDefinition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:494:2: ( ( ( rule__TestDefinition__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:495:1: ( ( rule__TestDefinition__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:495:1: ( ( rule__TestDefinition__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:496:1: ( rule__TestDefinition__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestDefinitionAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:497:1: ( rule__TestDefinition__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:497:2: rule__TestDefinition__Alternatives
            {
            pushFollow(FOLLOW_rule__TestDefinition__Alternatives_in_ruleTestDefinition1000);
            rule__TestDefinition__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestDefinitionAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestDefinition"


    // $ANTLR start "entryRuleTestBeliefs"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:509:1: entryRuleTestBeliefs : ruleTestBeliefs EOF ;
    public final void entryRuleTestBeliefs() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:510:1: ( ruleTestBeliefs EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:511:1: ruleTestBeliefs EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsRule()); 
            }
            pushFollow(FOLLOW_ruleTestBeliefs_in_entryRuleTestBeliefs1027);
            ruleTestBeliefs();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestBeliefs1034); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestBeliefs"


    // $ANTLR start "ruleTestBeliefs"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:518:1: ruleTestBeliefs : ( ( rule__TestBeliefs__Group__0 ) ) ;
    public final void ruleTestBeliefs() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:522:2: ( ( ( rule__TestBeliefs__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:523:1: ( ( rule__TestBeliefs__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:523:1: ( ( rule__TestBeliefs__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:524:1: ( rule__TestBeliefs__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:525:1: ( rule__TestBeliefs__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:525:2: rule__TestBeliefs__Group__0
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group__0_in_ruleTestBeliefs1060);
            rule__TestBeliefs__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestBeliefs"


    // $ANTLR start "entryRuleTestBelief"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:537:1: entryRuleTestBelief : ruleTestBelief EOF ;
    public final void entryRuleTestBelief() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:538:1: ( ruleTestBelief EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:539:1: ruleTestBelief EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefRule()); 
            }
            pushFollow(FOLLOW_ruleTestBelief_in_entryRuleTestBelief1087);
            ruleTestBelief();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestBelief1094); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestBelief"


    // $ANTLR start "ruleTestBelief"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:546:1: ruleTestBelief : ( ( rule__TestBelief__Group__0 ) ) ;
    public final void ruleTestBelief() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:550:2: ( ( ( rule__TestBelief__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:551:1: ( ( rule__TestBelief__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:551:1: ( ( rule__TestBelief__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:552:1: ( rule__TestBelief__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:553:1: ( rule__TestBelief__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:553:2: rule__TestBelief__Group__0
            {
            pushFollow(FOLLOW_rule__TestBelief__Group__0_in_ruleTestBelief1120);
            rule__TestBelief__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestBelief"


    // $ANTLR start "entryRuleTestPlan"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:565:1: entryRuleTestPlan : ruleTestPlan EOF ;
    public final void entryRuleTestPlan() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:566:1: ( ruleTestPlan EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:567:1: ruleTestPlan EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanRule()); 
            }
            pushFollow(FOLLOW_ruleTestPlan_in_entryRuleTestPlan1147);
            ruleTestPlan();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestPlan1154); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestPlan"


    // $ANTLR start "ruleTestPlan"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:574:1: ruleTestPlan : ( ( rule__TestPlan__Group__0 ) ) ;
    public final void ruleTestPlan() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:578:2: ( ( ( rule__TestPlan__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:579:1: ( ( rule__TestPlan__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:579:1: ( ( rule__TestPlan__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:580:1: ( rule__TestPlan__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:581:1: ( rule__TestPlan__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:581:2: rule__TestPlan__Group__0
            {
            pushFollow(FOLLOW_rule__TestPlan__Group__0_in_ruleTestPlan1180);
            rule__TestPlan__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestPlan"


    // $ANTLR start "entryRuleTestEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:593:1: entryRuleTestEvent : ruleTestEvent EOF ;
    public final void entryRuleTestEvent() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:594:1: ( ruleTestEvent EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:595:1: ruleTestEvent EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventRule()); 
            }
            pushFollow(FOLLOW_ruleTestEvent_in_entryRuleTestEvent1207);
            ruleTestEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestEvent1214); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestEvent"


    // $ANTLR start "ruleTestEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:602:1: ruleTestEvent : ( ( rule__TestEvent__Group__0 ) ) ;
    public final void ruleTestEvent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:606:2: ( ( ( rule__TestEvent__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:607:1: ( ( rule__TestEvent__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:607:1: ( ( rule__TestEvent__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:608:1: ( rule__TestEvent__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:609:1: ( rule__TestEvent__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:609:2: rule__TestEvent__Group__0
            {
            pushFollow(FOLLOW_rule__TestEvent__Group__0_in_ruleTestEvent1240);
            rule__TestEvent__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestEvent"


    // $ANTLR start "entryRuleTestGoal"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:621:1: entryRuleTestGoal : ruleTestGoal EOF ;
    public final void entryRuleTestGoal() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:622:1: ( ruleTestGoal EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:623:1: ruleTestGoal EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalRule()); 
            }
            pushFollow(FOLLOW_ruleTestGoal_in_entryRuleTestGoal1267);
            ruleTestGoal();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestGoal1274); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestGoal"


    // $ANTLR start "ruleTestGoal"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:630:1: ruleTestGoal : ( ( rule__TestGoal__Group__0 ) ) ;
    public final void ruleTestGoal() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:634:2: ( ( ( rule__TestGoal__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:635:1: ( ( rule__TestGoal__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:635:1: ( ( rule__TestGoal__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:636:1: ( rule__TestGoal__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:637:1: ( rule__TestGoal__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:637:2: rule__TestGoal__Group__0
            {
            pushFollow(FOLLOW_rule__TestGoal__Group__0_in_ruleTestGoal1300);
            rule__TestGoal__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestGoal"


    // $ANTLR start "entryRuleTestRule"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:649:1: entryRuleTestRule : ruleTestRule EOF ;
    public final void entryRuleTestRule() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:650:1: ( ruleTestRule EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:651:1: ruleTestRule EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleRule()); 
            }
            pushFollow(FOLLOW_ruleTestRule_in_entryRuleTestRule1327);
            ruleTestRule();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTestRule1334); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTestRule"


    // $ANTLR start "ruleTestRule"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:658:1: ruleTestRule : ( ( rule__TestRule__Group__0 ) ) ;
    public final void ruleTestRule() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:662:2: ( ( ( rule__TestRule__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:663:1: ( ( rule__TestRule__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:663:1: ( ( rule__TestRule__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:664:1: ( rule__TestRule__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:665:1: ( rule__TestRule__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:665:2: rule__TestRule__Group__0
            {
            pushFollow(FOLLOW_rule__TestRule__Group__0_in_ruleTestRule1360);
            rule__TestRule__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTestRule"


    // $ANTLR start "entryRuleAgent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:677:1: entryRuleAgent : ruleAgent EOF ;
    public final void entryRuleAgent() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:678:1: ( ruleAgent EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:679:1: ruleAgent EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentRule()); 
            }
            pushFollow(FOLLOW_ruleAgent_in_entryRuleAgent1387);
            ruleAgent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAgent1394); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAgent"


    // $ANTLR start "ruleAgent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:686:1: ruleAgent : ( ( rule__Agent__Group__0 ) ) ;
    public final void ruleAgent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:690:2: ( ( ( rule__Agent__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:691:1: ( ( rule__Agent__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:691:1: ( ( rule__Agent__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:692:1: ( rule__Agent__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:693:1: ( rule__Agent__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:693:2: rule__Agent__Group__0
            {
            pushFollow(FOLLOW_rule__Agent__Group__0_in_ruleAgent1420);
            rule__Agent__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAgent"


    // $ANTLR start "entryRuleAbstractElement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:705:1: entryRuleAbstractElement : ruleAbstractElement EOF ;
    public final void entryRuleAbstractElement() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:706:1: ( ruleAbstractElement EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:707:1: ruleAbstractElement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAbstractElementRule()); 
            }
            pushFollow(FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement1447);
            ruleAbstractElement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAbstractElementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractElement1454); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAbstractElement"


    // $ANTLR start "ruleAbstractElement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:714:1: ruleAbstractElement : ( ( rule__AbstractElement__Alternatives ) ) ;
    public final void ruleAbstractElement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:718:2: ( ( ( rule__AbstractElement__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:719:1: ( ( rule__AbstractElement__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:719:1: ( ( rule__AbstractElement__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:720:1: ( rule__AbstractElement__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAbstractElementAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:721:1: ( rule__AbstractElement__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:721:2: rule__AbstractElement__Alternatives
            {
            pushFollow(FOLLOW_rule__AbstractElement__Alternatives_in_ruleAbstractElement1480);
            rule__AbstractElement__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAbstractElementAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAbstractElement"


    // $ANTLR start "entryRuleInitialStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:733:1: entryRuleInitialStatement : ruleInitialStatement EOF ;
    public final void entryRuleInitialStatement() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:734:1: ( ruleInitialStatement EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:735:1: ruleInitialStatement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInitialStatementRule()); 
            }
            pushFollow(FOLLOW_ruleInitialStatement_in_entryRuleInitialStatement1507);
            ruleInitialStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInitialStatementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleInitialStatement1514); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleInitialStatement"


    // $ANTLR start "ruleInitialStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:742:1: ruleInitialStatement : ( ( rule__InitialStatement__Group__0 ) ) ;
    public final void ruleInitialStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:746:2: ( ( ( rule__InitialStatement__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:747:1: ( ( rule__InitialStatement__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:747:1: ( ( rule__InitialStatement__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:748:1: ( rule__InitialStatement__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInitialStatementAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:749:1: ( rule__InitialStatement__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:749:2: rule__InitialStatement__Group__0
            {
            pushFollow(FOLLOW_rule__InitialStatement__Group__0_in_ruleInitialStatement1540);
            rule__InitialStatement__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInitialStatementAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleInitialStatement"


    // $ANTLR start "entryRuleGoal"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:761:1: entryRuleGoal : ruleGoal EOF ;
    public final void entryRuleGoal() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:762:1: ( ruleGoal EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:763:1: ruleGoal EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalRule()); 
            }
            pushFollow(FOLLOW_ruleGoal_in_entryRuleGoal1567);
            ruleGoal();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleGoal1574); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleGoal"


    // $ANTLR start "ruleGoal"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:770:1: ruleGoal : ( ( rule__Goal__Group__0 ) ) ;
    public final void ruleGoal() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:774:2: ( ( ( rule__Goal__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:775:1: ( ( rule__Goal__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:775:1: ( ( rule__Goal__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:776:1: ( rule__Goal__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:777:1: ( rule__Goal__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:777:2: rule__Goal__Group__0
            {
            pushFollow(FOLLOW_rule__Goal__Group__0_in_ruleGoal1600);
            rule__Goal__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleGoal"


    // $ANTLR start "entryRulePlanStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:789:1: entryRulePlanStatement : rulePlanStatement EOF ;
    public final void entryRulePlanStatement() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:790:1: ( rulePlanStatement EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:791:1: rulePlanStatement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementRule()); 
            }
            pushFollow(FOLLOW_rulePlanStatement_in_entryRulePlanStatement1627);
            rulePlanStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePlanStatement1634); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePlanStatement"


    // $ANTLR start "rulePlanStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:798:1: rulePlanStatement : ( ( rule__PlanStatement__Group__0 ) ) ;
    public final void rulePlanStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:802:2: ( ( ( rule__PlanStatement__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:803:1: ( ( rule__PlanStatement__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:803:1: ( ( rule__PlanStatement__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:804:1: ( rule__PlanStatement__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:805:1: ( rule__PlanStatement__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:805:2: rule__PlanStatement__Group__0
            {
            pushFollow(FOLLOW_rule__PlanStatement__Group__0_in_rulePlanStatement1660);
            rule__PlanStatement__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePlanStatement"


    // $ANTLR start "entryRuleRuleStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:817:1: entryRuleRuleStatement : ruleRuleStatement EOF ;
    public final void entryRuleRuleStatement() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:818:1: ( ruleRuleStatement EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:819:1: ruleRuleStatement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementRule()); 
            }
            pushFollow(FOLLOW_ruleRuleStatement_in_entryRuleRuleStatement1687);
            ruleRuleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleRuleStatement1694); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleRuleStatement"


    // $ANTLR start "ruleRuleStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:826:1: ruleRuleStatement : ( ( rule__RuleStatement__Group__0 ) ) ;
    public final void ruleRuleStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:830:2: ( ( ( rule__RuleStatement__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:831:1: ( ( rule__RuleStatement__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:831:1: ( ( rule__RuleStatement__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:832:1: ( rule__RuleStatement__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:833:1: ( rule__RuleStatement__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:833:2: rule__RuleStatement__Group__0
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group__0_in_ruleRuleStatement1720);
            rule__RuleStatement__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleRuleStatement"


    // $ANTLR start "entryRuleTeleoReactiveFunction"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:845:1: entryRuleTeleoReactiveFunction : ruleTeleoReactiveFunction EOF ;
    public final void entryRuleTeleoReactiveFunction() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:846:1: ( ruleTeleoReactiveFunction EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:847:1: ruleTeleoReactiveFunction EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionRule()); 
            }
            pushFollow(FOLLOW_ruleTeleoReactiveFunction_in_entryRuleTeleoReactiveFunction1747);
            ruleTeleoReactiveFunction();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTeleoReactiveFunction1754); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTeleoReactiveFunction"


    // $ANTLR start "ruleTeleoReactiveFunction"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:854:1: ruleTeleoReactiveFunction : ( ( rule__TeleoReactiveFunction__Group__0 ) ) ;
    public final void ruleTeleoReactiveFunction() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:858:2: ( ( ( rule__TeleoReactiveFunction__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:859:1: ( ( rule__TeleoReactiveFunction__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:859:1: ( ( rule__TeleoReactiveFunction__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:860:1: ( rule__TeleoReactiveFunction__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:861:1: ( rule__TeleoReactiveFunction__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:861:2: rule__TeleoReactiveFunction__Group__0
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__0_in_ruleTeleoReactiveFunction1780);
            rule__TeleoReactiveFunction__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTeleoReactiveFunction"


    // $ANTLR start "entryRuleStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:873:1: entryRuleStatement : ruleStatement EOF ;
    public final void entryRuleStatement() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:874:1: ( ruleStatement EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:875:1: ruleStatement EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStatementRule()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_entryRuleStatement1807);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStatementRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleStatement1814); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleStatement"


    // $ANTLR start "ruleStatement"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:882:1: ruleStatement : ( ( rule__Statement__Alternatives ) ) ;
    public final void ruleStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:886:2: ( ( ( rule__Statement__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:887:1: ( ( rule__Statement__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:887:1: ( ( rule__Statement__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:888:1: ( rule__Statement__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStatementAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:889:1: ( rule__Statement__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:889:2: rule__Statement__Alternatives
            {
            pushFollow(FOLLOW_rule__Statement__Alternatives_in_ruleStatement1840);
            rule__Statement__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStatementAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleStatement"


    // $ANTLR start "entryRuleFormula"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:901:1: entryRuleFormula : ruleFormula EOF ;
    public final void entryRuleFormula() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:902:1: ( ruleFormula EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:903:1: ruleFormula EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFormulaRule()); 
            }
            pushFollow(FOLLOW_ruleFormula_in_entryRuleFormula1867);
            ruleFormula();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFormulaRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleFormula1874); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleFormula"


    // $ANTLR start "ruleFormula"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:910:1: ruleFormula : ( ( rule__Formula__Alternatives ) ) ;
    public final void ruleFormula() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:914:2: ( ( ( rule__Formula__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:915:1: ( ( rule__Formula__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:915:1: ( ( rule__Formula__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:916:1: ( rule__Formula__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFormulaAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:917:1: ( rule__Formula__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:917:2: rule__Formula__Alternatives
            {
            pushFollow(FOLLOW_rule__Formula__Alternatives_in_ruleFormula1900);
            rule__Formula__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFormulaAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleFormula"


    // $ANTLR start "entryRuleAND"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:929:1: entryRuleAND : ruleAND EOF ;
    public final void entryRuleAND() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:930:1: ( ruleAND EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:931:1: ruleAND EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDRule()); 
            }
            pushFollow(FOLLOW_ruleAND_in_entryRuleAND1927);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAND1934); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAND"


    // $ANTLR start "ruleAND"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:938:1: ruleAND : ( ( rule__AND__Group__0 ) ) ;
    public final void ruleAND() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:942:2: ( ( ( rule__AND__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:943:1: ( ( rule__AND__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:943:1: ( ( rule__AND__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:944:1: ( rule__AND__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:945:1: ( rule__AND__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:945:2: rule__AND__Group__0
            {
            pushFollow(FOLLOW_rule__AND__Group__0_in_ruleAND1960);
            rule__AND__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAND"


    // $ANTLR start "entryRuleComparison"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:957:1: entryRuleComparison : ruleComparison EOF ;
    public final void entryRuleComparison() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:958:1: ( ruleComparison EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:959:1: ruleComparison EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonRule()); 
            }
            pushFollow(FOLLOW_ruleComparison_in_entryRuleComparison1987);
            ruleComparison();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleComparison1994); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComparison"


    // $ANTLR start "ruleComparison"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:966:1: ruleComparison : ( ( rule__Comparison__Group__0 ) ) ;
    public final void ruleComparison() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:970:2: ( ( ( rule__Comparison__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:971:1: ( ( rule__Comparison__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:971:1: ( ( rule__Comparison__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:972:1: ( rule__Comparison__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:973:1: ( rule__Comparison__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:973:2: rule__Comparison__Group__0
            {
            pushFollow(FOLLOW_rule__Comparison__Group__0_in_ruleComparison2020);
            rule__Comparison__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComparison"


    // $ANTLR start "entryRuleEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:985:1: entryRuleEvent : ruleEvent EOF ;
    public final void entryRuleEvent() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:986:1: ( ruleEvent EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:987:1: ruleEvent EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEventRule()); 
            }
            pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent2047);
            ruleEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEventRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleEvent2054); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEvent"


    // $ANTLR start "ruleEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:994:1: ruleEvent : ( ( rule__Event__Alternatives ) ) ;
    public final void ruleEvent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:998:2: ( ( ( rule__Event__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:999:1: ( ( rule__Event__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:999:1: ( ( rule__Event__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1000:1: ( rule__Event__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEventAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1001:1: ( rule__Event__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1001:2: rule__Event__Alternatives
            {
            pushFollow(FOLLOW_rule__Event__Alternatives_in_ruleEvent2080);
            rule__Event__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEventAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEvent"


    // $ANTLR start "entryRuleMentalEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1013:1: entryRuleMentalEvent : ruleMentalEvent EOF ;
    public final void entryRuleMentalEvent() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1014:1: ( ruleMentalEvent EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1015:1: ruleMentalEvent EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMentalEventRule()); 
            }
            pushFollow(FOLLOW_ruleMentalEvent_in_entryRuleMentalEvent2107);
            ruleMentalEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMentalEventRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleMentalEvent2114); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMentalEvent"


    // $ANTLR start "ruleMentalEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1022:1: ruleMentalEvent : ( ( rule__MentalEvent__Group__0 ) ) ;
    public final void ruleMentalEvent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1026:2: ( ( ( rule__MentalEvent__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1027:1: ( ( rule__MentalEvent__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1027:1: ( ( rule__MentalEvent__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1028:1: ( rule__MentalEvent__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMentalEventAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1029:1: ( rule__MentalEvent__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1029:2: rule__MentalEvent__Group__0
            {
            pushFollow(FOLLOW_rule__MentalEvent__Group__0_in_ruleMentalEvent2140);
            rule__MentalEvent__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMentalEventAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMentalEvent"


    // $ANTLR start "entryRuleMessageEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1041:1: entryRuleMessageEvent : ruleMessageEvent EOF ;
    public final void entryRuleMessageEvent() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1042:1: ( ruleMessageEvent EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1043:1: ruleMessageEvent EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventRule()); 
            }
            pushFollow(FOLLOW_ruleMessageEvent_in_entryRuleMessageEvent2167);
            ruleMessageEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleMessageEvent2174); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMessageEvent"


    // $ANTLR start "ruleMessageEvent"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1050:1: ruleMessageEvent : ( ( rule__MessageEvent__Group__0 ) ) ;
    public final void ruleMessageEvent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1054:2: ( ( ( rule__MessageEvent__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1055:1: ( ( rule__MessageEvent__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1055:1: ( ( rule__MessageEvent__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1056:1: ( rule__MessageEvent__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1057:1: ( rule__MessageEvent__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1057:2: rule__MessageEvent__Group__0
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__0_in_ruleMessageEvent2200);
            rule__MessageEvent__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMessageEvent"


    // $ANTLR start "entryRuleLibrary"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1069:1: entryRuleLibrary : ruleLibrary EOF ;
    public final void entryRuleLibrary() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1070:1: ( ruleLibrary EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1071:1: ruleLibrary EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryRule()); 
            }
            pushFollow(FOLLOW_ruleLibrary_in_entryRuleLibrary2227);
            ruleLibrary();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleLibrary2234); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLibrary"


    // $ANTLR start "ruleLibrary"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1078:1: ruleLibrary : ( ( rule__Library__Group__0 ) ) ;
    public final void ruleLibrary() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1082:2: ( ( ( rule__Library__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1083:1: ( ( rule__Library__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1083:1: ( ( rule__Library__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1084:1: ( rule__Library__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1085:1: ( rule__Library__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1085:2: rule__Library__Group__0
            {
            pushFollow(FOLLOW_rule__Library__Group__0_in_ruleLibrary2260);
            rule__Library__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLibrary"


    // $ANTLR start "entryRuleLibraryTerm"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1097:1: entryRuleLibraryTerm : ruleLibraryTerm EOF ;
    public final void entryRuleLibraryTerm() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1098:1: ( ruleLibraryTerm EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1099:1: ruleLibraryTerm EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermRule()); 
            }
            pushFollow(FOLLOW_ruleLibraryTerm_in_entryRuleLibraryTerm2287);
            ruleLibraryTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleLibraryTerm2294); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLibraryTerm"


    // $ANTLR start "ruleLibraryTerm"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1106:1: ruleLibraryTerm : ( ( rule__LibraryTerm__Group__0 ) ) ;
    public final void ruleLibraryTerm() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1110:2: ( ( ( rule__LibraryTerm__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1111:1: ( ( rule__LibraryTerm__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1111:1: ( ( rule__LibraryTerm__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1112:1: ( rule__LibraryTerm__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1113:1: ( rule__LibraryTerm__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1113:2: rule__LibraryTerm__Group__0
            {
            pushFollow(FOLLOW_rule__LibraryTerm__Group__0_in_ruleLibraryTerm2320);
            rule__LibraryTerm__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLibraryTerm"


    // $ANTLR start "entryRuleCount"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1125:1: entryRuleCount : ruleCount EOF ;
    public final void entryRuleCount() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1126:1: ( ruleCount EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1127:1: ruleCount EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountRule()); 
            }
            pushFollow(FOLLOW_ruleCount_in_entryRuleCount2347);
            ruleCount();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleCount2354); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleCount"


    // $ANTLR start "ruleCount"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1134:1: ruleCount : ( ( rule__Count__Group__0 ) ) ;
    public final void ruleCount() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1138:2: ( ( ( rule__Count__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1139:1: ( ( rule__Count__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1139:1: ( ( rule__Count__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1140:1: ( rule__Count__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1141:1: ( rule__Count__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1141:2: rule__Count__Group__0
            {
            pushFollow(FOLLOW_rule__Count__Group__0_in_ruleCount2380);
            rule__Count__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleCount"


    // $ANTLR start "entryRuleList"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1153:1: entryRuleList : ruleList EOF ;
    public final void entryRuleList() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1154:1: ( ruleList EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1155:1: ruleList EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListRule()); 
            }
            pushFollow(FOLLOW_ruleList_in_entryRuleList2407);
            ruleList();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleList2414); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleList"


    // $ANTLR start "ruleList"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1162:1: ruleList : ( ( rule__List__Group__0 ) ) ;
    public final void ruleList() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1166:2: ( ( ( rule__List__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1167:1: ( ( rule__List__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1167:1: ( ( rule__List__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1168:1: ( rule__List__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1169:1: ( rule__List__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1169:2: rule__List__Group__0
            {
            pushFollow(FOLLOW_rule__List__Group__0_in_ruleList2440);
            rule__List__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleList"


    // $ANTLR start "entryRuleListConstructor"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1181:1: entryRuleListConstructor : ruleListConstructor EOF ;
    public final void entryRuleListConstructor() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1182:1: ( ruleListConstructor EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1183:1: ruleListConstructor EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorRule()); 
            }
            pushFollow(FOLLOW_ruleListConstructor_in_entryRuleListConstructor2467);
            ruleListConstructor();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleListConstructor2474); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleListConstructor"


    // $ANTLR start "ruleListConstructor"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1190:1: ruleListConstructor : ( ( rule__ListConstructor__Group__0 ) ) ;
    public final void ruleListConstructor() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1194:2: ( ( ( rule__ListConstructor__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1195:1: ( ( rule__ListConstructor__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1195:1: ( ( rule__ListConstructor__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1196:1: ( rule__ListConstructor__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1197:1: ( rule__ListConstructor__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1197:2: rule__ListConstructor__Group__0
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__0_in_ruleListConstructor2500);
            rule__ListConstructor__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleListConstructor"


    // $ANTLR start "entryRuleNOT"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1209:1: entryRuleNOT : ruleNOT EOF ;
    public final void entryRuleNOT() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1210:1: ( ruleNOT EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1211:1: ruleNOT EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTRule()); 
            }
            pushFollow(FOLLOW_ruleNOT_in_entryRuleNOT2527);
            ruleNOT();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleNOT2534); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNOT"


    // $ANTLR start "ruleNOT"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1218:1: ruleNOT : ( ( rule__NOT__Group__0 ) ) ;
    public final void ruleNOT() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1222:2: ( ( ( rule__NOT__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1223:1: ( ( rule__NOT__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1223:1: ( ( rule__NOT__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1224:1: ( rule__NOT__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1225:1: ( rule__NOT__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1225:2: rule__NOT__Group__0
            {
            pushFollow(FOLLOW_rule__NOT__Group__0_in_ruleNOT2560);
            rule__NOT__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNOT"


    // $ANTLR start "entryRuleTerm"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1237:1: entryRuleTerm : ruleTerm EOF ;
    public final void entryRuleTerm() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1238:1: ( ruleTerm EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1239:1: ruleTerm EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTermRule()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_entryRuleTerm2587);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTermRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTerm2594); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTerm"


    // $ANTLR start "ruleTerm"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1246:1: ruleTerm : ( ruleAddition ) ;
    public final void ruleTerm() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1250:2: ( ( ruleAddition ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1251:1: ( ruleAddition )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1251:1: ( ruleAddition )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1252:1: ruleAddition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTermAccess().getAdditionParserRuleCall()); 
            }
            pushFollow(FOLLOW_ruleAddition_in_ruleTerm2620);
            ruleAddition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTermAccess().getAdditionParserRuleCall()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTerm"


    // $ANTLR start "entryRuleAddition"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1265:1: entryRuleAddition : ruleAddition EOF ;
    public final void entryRuleAddition() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1266:1: ( ruleAddition EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1267:1: ruleAddition EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionRule()); 
            }
            pushFollow(FOLLOW_ruleAddition_in_entryRuleAddition2646);
            ruleAddition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAddition2653); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAddition"


    // $ANTLR start "ruleAddition"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1274:1: ruleAddition : ( ( rule__Addition__Group__0 ) ) ;
    public final void ruleAddition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1278:2: ( ( ( rule__Addition__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1279:1: ( ( rule__Addition__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1279:1: ( ( rule__Addition__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1280:1: ( rule__Addition__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1281:1: ( rule__Addition__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1281:2: rule__Addition__Group__0
            {
            pushFollow(FOLLOW_rule__Addition__Group__0_in_ruleAddition2679);
            rule__Addition__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAddition"


    // $ANTLR start "entryRuleMultiplication"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1293:1: entryRuleMultiplication : ruleMultiplication EOF ;
    public final void entryRuleMultiplication() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1294:1: ( ruleMultiplication EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1295:1: ruleMultiplication EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationRule()); 
            }
            pushFollow(FOLLOW_ruleMultiplication_in_entryRuleMultiplication2706);
            ruleMultiplication();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleMultiplication2713); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMultiplication"


    // $ANTLR start "ruleMultiplication"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1302:1: ruleMultiplication : ( ( rule__Multiplication__Group__0 ) ) ;
    public final void ruleMultiplication() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1306:2: ( ( ( rule__Multiplication__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1307:1: ( ( rule__Multiplication__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1307:1: ( ( rule__Multiplication__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1308:1: ( rule__Multiplication__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1309:1: ( rule__Multiplication__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1309:2: rule__Multiplication__Group__0
            {
            pushFollow(FOLLOW_rule__Multiplication__Group__0_in_ruleMultiplication2739);
            rule__Multiplication__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMultiplication"


    // $ANTLR start "entryRulePrimary"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1321:1: entryRulePrimary : rulePrimary EOF ;
    public final void entryRulePrimary() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1322:1: ( rulePrimary EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1323:1: rulePrimary EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryRule()); 
            }
            pushFollow(FOLLOW_rulePrimary_in_entryRulePrimary2766);
            rulePrimary();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePrimary2773); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePrimary"


    // $ANTLR start "rulePrimary"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1330:1: rulePrimary : ( ( rule__Primary__Alternatives ) ) ;
    public final void rulePrimary() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1334:2: ( ( ( rule__Primary__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1335:1: ( ( rule__Primary__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1335:1: ( ( rule__Primary__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1336:1: ( rule__Primary__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1337:1: ( rule__Primary__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1337:2: rule__Primary__Alternatives
            {
            pushFollow(FOLLOW_rule__Primary__Alternatives_in_rulePrimary2799);
            rule__Primary__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePrimary"


    // $ANTLR start "entryRuleLibraryFormula"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1349:1: entryRuleLibraryFormula : ruleLibraryFormula EOF ;
    public final void entryRuleLibraryFormula() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1350:1: ( ruleLibraryFormula EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1351:1: ruleLibraryFormula EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaRule()); 
            }
            pushFollow(FOLLOW_ruleLibraryFormula_in_entryRuleLibraryFormula2826);
            ruleLibraryFormula();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleLibraryFormula2833); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLibraryFormula"


    // $ANTLR start "ruleLibraryFormula"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1358:1: ruleLibraryFormula : ( ( rule__LibraryFormula__Group__0 ) ) ;
    public final void ruleLibraryFormula() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1362:2: ( ( ( rule__LibraryFormula__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1363:1: ( ( rule__LibraryFormula__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1363:1: ( ( rule__LibraryFormula__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1364:1: ( rule__LibraryFormula__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1365:1: ( rule__LibraryFormula__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1365:2: rule__LibraryFormula__Group__0
            {
            pushFollow(FOLLOW_rule__LibraryFormula__Group__0_in_ruleLibraryFormula2859);
            rule__LibraryFormula__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLibraryFormula"


    // $ANTLR start "entryRulePredicate"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1377:1: entryRulePredicate : rulePredicate EOF ;
    public final void entryRulePredicate() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1378:1: ( rulePredicate EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1379:1: rulePredicate EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateRule()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_entryRulePredicate2886);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRulePredicate2893); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePredicate"


    // $ANTLR start "rulePredicate"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1386:1: rulePredicate : ( ( rule__Predicate__Group__0 ) ) ;
    public final void rulePredicate() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1390:2: ( ( ( rule__Predicate__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1391:1: ( ( rule__Predicate__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1391:1: ( ( rule__Predicate__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1392:1: ( rule__Predicate__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1393:1: ( rule__Predicate__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1393:2: rule__Predicate__Group__0
            {
            pushFollow(FOLLOW_rule__Predicate__Group__0_in_rulePredicate2919);
            rule__Predicate__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePredicate"


    // $ANTLR start "entryRuleType"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1407:1: entryRuleType : ruleType EOF ;
    public final void entryRuleType() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1408:1: ( ruleType EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1409:1: ruleType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeRule()); 
            }
            pushFollow(FOLLOW_ruleType_in_entryRuleType2948);
            ruleType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleType2955); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleType"


    // $ANTLR start "ruleType"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1416:1: ruleType : ( ( rule__Type__Alternatives ) ) ;
    public final void ruleType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1420:2: ( ( ( rule__Type__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1421:1: ( ( rule__Type__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1421:1: ( ( rule__Type__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1422:1: ( rule__Type__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1423:1: ( rule__Type__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1423:2: rule__Type__Alternatives
            {
            pushFollow(FOLLOW_rule__Type__Alternatives_in_ruleType2981);
            rule__Type__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleType"


    // $ANTLR start "entryRuleVariable"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1435:1: entryRuleVariable : ruleVariable EOF ;
    public final void entryRuleVariable() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1436:1: ( ruleVariable EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1437:1: ruleVariable EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVariableRule()); 
            }
            pushFollow(FOLLOW_ruleVariable_in_entryRuleVariable3008);
            ruleVariable();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getVariableRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleVariable3015); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleVariable"


    // $ANTLR start "ruleVariable"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1444:1: ruleVariable : ( ( rule__Variable__Group__0 ) ) ;
    public final void ruleVariable() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1448:2: ( ( ( rule__Variable__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1449:1: ( ( rule__Variable__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1449:1: ( ( rule__Variable__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1450:1: ( rule__Variable__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVariableAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1451:1: ( rule__Variable__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1451:2: rule__Variable__Group__0
            {
            pushFollow(FOLLOW_rule__Variable__Group__0_in_ruleVariable3041);
            rule__Variable__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getVariableAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleVariable"


    // $ANTLR start "entryRuleAssignment"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1463:1: entryRuleAssignment : ruleAssignment EOF ;
    public final void entryRuleAssignment() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1464:1: ( ruleAssignment EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1465:1: ruleAssignment EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentRule()); 
            }
            pushFollow(FOLLOW_ruleAssignment_in_entryRuleAssignment3068);
            ruleAssignment();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleAssignment3075); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAssignment"


    // $ANTLR start "ruleAssignment"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1472:1: ruleAssignment : ( ( rule__Assignment__Group__0 ) ) ;
    public final void ruleAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1476:2: ( ( ( rule__Assignment__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1477:1: ( ( rule__Assignment__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1477:1: ( ( rule__Assignment__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1478:1: ( rule__Assignment__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1479:1: ( rule__Assignment__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1479:2: rule__Assignment__Group__0
            {
            pushFollow(FOLLOW_rule__Assignment__Group__0_in_ruleAssignment3101);
            rule__Assignment__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAssignment"


    // $ANTLR start "entryRuleBeliefUpdate"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1491:1: entryRuleBeliefUpdate : ruleBeliefUpdate EOF ;
    public final void entryRuleBeliefUpdate() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1492:1: ( ruleBeliefUpdate EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1493:1: ruleBeliefUpdate EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBeliefUpdateRule()); 
            }
            pushFollow(FOLLOW_ruleBeliefUpdate_in_entryRuleBeliefUpdate3128);
            ruleBeliefUpdate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBeliefUpdateRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleBeliefUpdate3135); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleBeliefUpdate"


    // $ANTLR start "ruleBeliefUpdate"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1500:1: ruleBeliefUpdate : ( ( rule__BeliefUpdate__Group__0 ) ) ;
    public final void ruleBeliefUpdate() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1504:2: ( ( ( rule__BeliefUpdate__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1505:1: ( ( rule__BeliefUpdate__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1505:1: ( ( rule__BeliefUpdate__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1506:1: ( rule__BeliefUpdate__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBeliefUpdateAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1507:1: ( rule__BeliefUpdate__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1507:2: rule__BeliefUpdate__Group__0
            {
            pushFollow(FOLLOW_rule__BeliefUpdate__Group__0_in_ruleBeliefUpdate3161);
            rule__BeliefUpdate__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBeliefUpdateAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBeliefUpdate"


    // $ANTLR start "entryRuleBlock"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1519:1: entryRuleBlock : ruleBlock EOF ;
    public final void entryRuleBlock() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1520:1: ( ruleBlock EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1521:1: ruleBlock EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockRule()); 
            }
            pushFollow(FOLLOW_ruleBlock_in_entryRuleBlock3188);
            ruleBlock();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleBlock3195); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleBlock"


    // $ANTLR start "ruleBlock"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1528:1: ruleBlock : ( ( rule__Block__Group__0 ) ) ;
    public final void ruleBlock() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1532:2: ( ( ( rule__Block__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1533:1: ( ( rule__Block__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1533:1: ( ( rule__Block__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1534:1: ( rule__Block__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1535:1: ( rule__Block__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1535:2: rule__Block__Group__0
            {
            pushFollow(FOLLOW_rule__Block__Group__0_in_ruleBlock3221);
            rule__Block__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBlock"


    // $ANTLR start "entryRuleSynchronizedBlock"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1547:1: entryRuleSynchronizedBlock : ruleSynchronizedBlock EOF ;
    public final void entryRuleSynchronizedBlock() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1548:1: ( ruleSynchronizedBlock EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1549:1: ruleSynchronizedBlock EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockRule()); 
            }
            pushFollow(FOLLOW_ruleSynchronizedBlock_in_entryRuleSynchronizedBlock3248);
            ruleSynchronizedBlock();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSynchronizedBlock3255); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSynchronizedBlock"


    // $ANTLR start "ruleSynchronizedBlock"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1556:1: ruleSynchronizedBlock : ( ( rule__SynchronizedBlock__Group__0 ) ) ;
    public final void ruleSynchronizedBlock() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1560:2: ( ( ( rule__SynchronizedBlock__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1561:1: ( ( rule__SynchronizedBlock__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1561:1: ( ( rule__SynchronizedBlock__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1562:1: ( rule__SynchronizedBlock__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1563:1: ( rule__SynchronizedBlock__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1563:2: rule__SynchronizedBlock__Group__0
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__0_in_ruleSynchronizedBlock3281);
            rule__SynchronizedBlock__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSynchronizedBlock"


    // $ANTLR start "entryRuleForEach"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1575:1: entryRuleForEach : ruleForEach EOF ;
    public final void entryRuleForEach() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1576:1: ( ruleForEach EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1577:1: ruleForEach EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachRule()); 
            }
            pushFollow(FOLLOW_ruleForEach_in_entryRuleForEach3308);
            ruleForEach();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleForEach3315); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleForEach"


    // $ANTLR start "ruleForEach"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1584:1: ruleForEach : ( ( rule__ForEach__Group__0 ) ) ;
    public final void ruleForEach() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1588:2: ( ( ( rule__ForEach__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1589:1: ( ( rule__ForEach__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1589:1: ( ( rule__ForEach__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1590:1: ( rule__ForEach__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1591:1: ( rule__ForEach__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1591:2: rule__ForEach__Group__0
            {
            pushFollow(FOLLOW_rule__ForEach__Group__0_in_ruleForEach3341);
            rule__ForEach__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleForEach"


    // $ANTLR start "entryRuleGoalStep"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1603:1: entryRuleGoalStep : ruleGoalStep EOF ;
    public final void entryRuleGoalStep() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1604:1: ( ruleGoalStep EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1605:1: ruleGoalStep EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepRule()); 
            }
            pushFollow(FOLLOW_ruleGoalStep_in_entryRuleGoalStep3368);
            ruleGoalStep();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleGoalStep3375); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleGoalStep"


    // $ANTLR start "ruleGoalStep"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1612:1: ruleGoalStep : ( ( rule__GoalStep__Group__0 ) ) ;
    public final void ruleGoalStep() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1616:2: ( ( ( rule__GoalStep__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1617:1: ( ( rule__GoalStep__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1617:1: ( ( rule__GoalStep__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1618:1: ( rule__GoalStep__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1619:1: ( rule__GoalStep__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1619:2: rule__GoalStep__Group__0
            {
            pushFollow(FOLLOW_rule__GoalStep__Group__0_in_ruleGoalStep3401);
            rule__GoalStep__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleGoalStep"


    // $ANTLR start "entryRuleSendMessage"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1631:1: entryRuleSendMessage : ruleSendMessage EOF ;
    public final void entryRuleSendMessage() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1632:1: ( ruleSendMessage EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1633:1: ruleSendMessage EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageRule()); 
            }
            pushFollow(FOLLOW_ruleSendMessage_in_entryRuleSendMessage3428);
            ruleSendMessage();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSendMessage3435); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSendMessage"


    // $ANTLR start "ruleSendMessage"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1640:1: ruleSendMessage : ( ( rule__SendMessage__Group__0 ) ) ;
    public final void ruleSendMessage() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1644:2: ( ( ( rule__SendMessage__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1645:1: ( ( rule__SendMessage__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1645:1: ( ( rule__SendMessage__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1646:1: ( rule__SendMessage__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1647:1: ( rule__SendMessage__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1647:2: rule__SendMessage__Group__0
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__0_in_ruleSendMessage3461);
            rule__SendMessage__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSendMessage"


    // $ANTLR start "entryRuleEISSetup"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1659:1: entryRuleEISSetup : ruleEISSetup EOF ;
    public final void entryRuleEISSetup() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1660:1: ( ruleEISSetup EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1661:1: ruleEISSetup EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupRule()); 
            }
            pushFollow(FOLLOW_ruleEISSetup_in_entryRuleEISSetup3488);
            ruleEISSetup();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleEISSetup3495); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEISSetup"


    // $ANTLR start "ruleEISSetup"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1668:1: ruleEISSetup : ( ( rule__EISSetup__Group__0 ) ) ;
    public final void ruleEISSetup() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1672:2: ( ( ( rule__EISSetup__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1673:1: ( ( rule__EISSetup__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1673:1: ( ( rule__EISSetup__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1674:1: ( rule__EISSetup__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1675:1: ( rule__EISSetup__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1675:2: rule__EISSetup__Group__0
            {
            pushFollow(FOLLOW_rule__EISSetup__Group__0_in_ruleEISSetup3521);
            rule__EISSetup__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEISSetup"


    // $ANTLR start "entryRuleEISPerform"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1687:1: entryRuleEISPerform : ruleEISPerform EOF ;
    public final void entryRuleEISPerform() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1688:1: ( ruleEISPerform EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1689:1: ruleEISPerform EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformRule()); 
            }
            pushFollow(FOLLOW_ruleEISPerform_in_entryRuleEISPerform3548);
            ruleEISPerform();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleEISPerform3555); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEISPerform"


    // $ANTLR start "ruleEISPerform"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1696:1: ruleEISPerform : ( ( rule__EISPerform__Group__0 ) ) ;
    public final void ruleEISPerform() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1700:2: ( ( ( rule__EISPerform__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1701:1: ( ( rule__EISPerform__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1701:1: ( ( rule__EISPerform__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1702:1: ( rule__EISPerform__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1703:1: ( rule__EISPerform__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1703:2: rule__EISPerform__Group__0
            {
            pushFollow(FOLLOW_rule__EISPerform__Group__0_in_ruleEISPerform3581);
            rule__EISPerform__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEISPerform"


    // $ANTLR start "entryRuleIf"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1715:1: entryRuleIf : ruleIf EOF ;
    public final void entryRuleIf() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1716:1: ( ruleIf EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1717:1: ruleIf EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfRule()); 
            }
            pushFollow(FOLLOW_ruleIf_in_entryRuleIf3608);
            ruleIf();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleIf3615); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleIf"


    // $ANTLR start "ruleIf"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1724:1: ruleIf : ( ( rule__If__Group__0 ) ) ;
    public final void ruleIf() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1728:2: ( ( ( rule__If__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1729:1: ( ( rule__If__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1729:1: ( ( rule__If__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1730:1: ( rule__If__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1731:1: ( rule__If__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1731:2: rule__If__Group__0
            {
            pushFollow(FOLLOW_rule__If__Group__0_in_ruleIf3641);
            rule__If__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleIf"


    // $ANTLR start "entryRuleLibraryAction"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1743:1: entryRuleLibraryAction : ruleLibraryAction EOF ;
    public final void entryRuleLibraryAction() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1744:1: ( ruleLibraryAction EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1745:1: ruleLibraryAction EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionRule()); 
            }
            pushFollow(FOLLOW_ruleLibraryAction_in_entryRuleLibraryAction3668);
            ruleLibraryAction();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleLibraryAction3675); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLibraryAction"


    // $ANTLR start "ruleLibraryAction"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1752:1: ruleLibraryAction : ( ( rule__LibraryAction__Group__0 ) ) ;
    public final void ruleLibraryAction() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1756:2: ( ( ( rule__LibraryAction__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1757:1: ( ( rule__LibraryAction__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1757:1: ( ( rule__LibraryAction__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1758:1: ( rule__LibraryAction__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1759:1: ( rule__LibraryAction__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1759:2: rule__LibraryAction__Group__0
            {
            pushFollow(FOLLOW_rule__LibraryAction__Group__0_in_ruleLibraryAction3701);
            rule__LibraryAction__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLibraryAction"


    // $ANTLR start "entryRuleQuery"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1773:1: entryRuleQuery : ruleQuery EOF ;
    public final void entryRuleQuery() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1774:1: ( ruleQuery EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1775:1: ruleQuery EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryRule()); 
            }
            pushFollow(FOLLOW_ruleQuery_in_entryRuleQuery3730);
            ruleQuery();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleQuery3737); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQuery"


    // $ANTLR start "ruleQuery"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1782:1: ruleQuery : ( ( rule__Query__Group__0 ) ) ;
    public final void ruleQuery() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1786:2: ( ( ( rule__Query__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1787:1: ( ( rule__Query__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1787:1: ( ( rule__Query__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1788:1: ( rule__Query__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1789:1: ( rule__Query__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1789:2: rule__Query__Group__0
            {
            pushFollow(FOLLOW_rule__Query__Group__0_in_ruleQuery3763);
            rule__Query__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQuery"


    // $ANTLR start "entryRuleTRActive"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1801:1: entryRuleTRActive : ruleTRActive EOF ;
    public final void entryRuleTRActive() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1802:1: ( ruleTRActive EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1803:1: ruleTRActive EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveRule()); 
            }
            pushFollow(FOLLOW_ruleTRActive_in_entryRuleTRActive3790);
            ruleTRActive();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTRActive3797); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTRActive"


    // $ANTLR start "ruleTRActive"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1810:1: ruleTRActive : ( ( rule__TRActive__Group__0 ) ) ;
    public final void ruleTRActive() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1814:2: ( ( ( rule__TRActive__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1815:1: ( ( rule__TRActive__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1815:1: ( ( rule__TRActive__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1816:1: ( rule__TRActive__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1817:1: ( rule__TRActive__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1817:2: rule__TRActive__Group__0
            {
            pushFollow(FOLLOW_rule__TRActive__Group__0_in_ruleTRActive3823);
            rule__TRActive__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTRActive"


    // $ANTLR start "entryRuleTRControl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1829:1: entryRuleTRControl : ruleTRControl EOF ;
    public final void entryRuleTRControl() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1830:1: ( ruleTRControl EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1831:1: ruleTRControl EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlRule()); 
            }
            pushFollow(FOLLOW_ruleTRControl_in_entryRuleTRControl3850);
            ruleTRControl();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTRControl3857); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTRControl"


    // $ANTLR start "ruleTRControl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1838:1: ruleTRControl : ( ( rule__TRControl__Group__0 ) ) ;
    public final void ruleTRControl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1842:2: ( ( ( rule__TRControl__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1843:1: ( ( rule__TRControl__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1843:1: ( ( rule__TRControl__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1844:1: ( rule__TRControl__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1845:1: ( rule__TRControl__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1845:2: rule__TRControl__Group__0
            {
            pushFollow(FOLLOW_rule__TRControl__Group__0_in_ruleTRControl3883);
            rule__TRControl__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTRControl"


    // $ANTLR start "entryRuleTypeStep"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1857:1: entryRuleTypeStep : ruleTypeStep EOF ;
    public final void entryRuleTypeStep() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1858:1: ( ruleTypeStep EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1859:1: ruleTypeStep EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepRule()); 
            }
            pushFollow(FOLLOW_ruleTypeStep_in_entryRuleTypeStep3910);
            ruleTypeStep();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeStep3917); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTypeStep"


    // $ANTLR start "ruleTypeStep"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1866:1: ruleTypeStep : ( ( rule__TypeStep__Group__0 ) ) ;
    public final void ruleTypeStep() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1870:2: ( ( ( rule__TypeStep__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1871:1: ( ( rule__TypeStep__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1871:1: ( ( rule__TypeStep__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1872:1: ( rule__TypeStep__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1873:1: ( rule__TypeStep__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1873:2: rule__TypeStep__Group__0
            {
            pushFollow(FOLLOW_rule__TypeStep__Group__0_in_ruleTypeStep3943);
            rule__TypeStep__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTypeStep"


    // $ANTLR start "entryRuleWait"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1885:1: entryRuleWait : ruleWait EOF ;
    public final void entryRuleWait() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1886:1: ( ruleWait EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1887:1: ruleWait EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitRule()); 
            }
            pushFollow(FOLLOW_ruleWait_in_entryRuleWait3970);
            ruleWait();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleWait3977); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleWait"


    // $ANTLR start "ruleWait"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1894:1: ruleWait : ( ( rule__Wait__Group__0 ) ) ;
    public final void ruleWait() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1898:2: ( ( ( rule__Wait__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1899:1: ( ( rule__Wait__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1899:1: ( ( rule__Wait__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1900:1: ( rule__Wait__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1901:1: ( rule__Wait__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1901:2: rule__Wait__Group__0
            {
            pushFollow(FOLLOW_rule__Wait__Group__0_in_ruleWait4003);
            rule__Wait__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleWait"


    // $ANTLR start "entryRuleWhen"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1913:1: entryRuleWhen : ruleWhen EOF ;
    public final void entryRuleWhen() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1914:1: ( ruleWhen EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1915:1: ruleWhen EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenRule()); 
            }
            pushFollow(FOLLOW_ruleWhen_in_entryRuleWhen4030);
            ruleWhen();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleWhen4037); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleWhen"


    // $ANTLR start "ruleWhen"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1922:1: ruleWhen : ( ( rule__When__Group__0 ) ) ;
    public final void ruleWhen() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1926:2: ( ( ( rule__When__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1927:1: ( ( rule__When__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1927:1: ( ( rule__When__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1928:1: ( rule__When__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1929:1: ( rule__When__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1929:2: rule__When__Group__0
            {
            pushFollow(FOLLOW_rule__When__Group__0_in_ruleWhen4063);
            rule__When__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleWhen"


    // $ANTLR start "entryRuleWhile"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1941:1: entryRuleWhile : ruleWhile EOF ;
    public final void entryRuleWhile() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1942:1: ( ruleWhile EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1943:1: ruleWhile EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileRule()); 
            }
            pushFollow(FOLLOW_ruleWhile_in_entryRuleWhile4090);
            ruleWhile();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleWhile4097); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleWhile"


    // $ANTLR start "ruleWhile"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1950:1: ruleWhile : ( ( rule__While__Group__0 ) ) ;
    public final void ruleWhile() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1954:2: ( ( ( rule__While__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1955:1: ( ( rule__While__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1955:1: ( ( rule__While__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1956:1: ( rule__While__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1957:1: ( rule__While__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1957:2: rule__While__Group__0
            {
            pushFollow(FOLLOW_rule__While__Group__0_in_ruleWhile4123);
            rule__While__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleWhile"


    // $ANTLR start "entryRuleTeleoReactiveRule"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1969:1: entryRuleTeleoReactiveRule : ruleTeleoReactiveRule EOF ;
    public final void entryRuleTeleoReactiveRule() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1970:1: ( ruleTeleoReactiveRule EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1971:1: ruleTeleoReactiveRule EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleRule()); 
            }
            pushFollow(FOLLOW_ruleTeleoReactiveRule_in_entryRuleTeleoReactiveRule4150);
            ruleTeleoReactiveRule();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleTeleoReactiveRule4157); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTeleoReactiveRule"


    // $ANTLR start "ruleTeleoReactiveRule"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1978:1: ruleTeleoReactiveRule : ( ( rule__TeleoReactiveRule__Group__0 ) ) ;
    public final void ruleTeleoReactiveRule() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1982:2: ( ( ( rule__TeleoReactiveRule__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1983:1: ( ( rule__TeleoReactiveRule__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1983:1: ( ( rule__TeleoReactiveRule__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1984:1: ( rule__TeleoReactiveRule__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1985:1: ( rule__TeleoReactiveRule__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1985:2: rule__TeleoReactiveRule__Group__0
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__Group__0_in_ruleTeleoReactiveRule4183);
            rule__TeleoReactiveRule__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTeleoReactiveRule"


    // $ANTLR start "entryRuleNumber"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1997:1: entryRuleNumber : ruleNumber EOF ;
    public final void entryRuleNumber() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1998:1: ( ruleNumber EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:1999:1: ruleNumber EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberRule()); 
            }
            pushFollow(FOLLOW_ruleNumber_in_entryRuleNumber4210);
            ruleNumber();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleNumber4217); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleNumber"


    // $ANTLR start "ruleNumber"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2006:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
    public final void ruleNumber() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2010:2: ( ( ( rule__Number__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2011:1: ( ( rule__Number__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2011:1: ( ( rule__Number__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2012:1: ( rule__Number__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2013:1: ( rule__Number__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2013:2: rule__Number__Alternatives
            {
            pushFollow(FOLLOW_rule__Number__Alternatives_in_ruleNumber4243);
            rule__Number__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleNumber"


    // $ANTLR start "entryRuleUnsignedNumber"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2025:1: entryRuleUnsignedNumber : ruleUnsignedNumber EOF ;
    public final void entryRuleUnsignedNumber() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2026:1: ( ruleUnsignedNumber EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2027:1: ruleUnsignedNumber EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnsignedNumberRule()); 
            }
            pushFollow(FOLLOW_ruleUnsignedNumber_in_entryRuleUnsignedNumber4270);
            ruleUnsignedNumber();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnsignedNumberRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleUnsignedNumber4277); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleUnsignedNumber"


    // $ANTLR start "ruleUnsignedNumber"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2034:1: ruleUnsignedNumber : ( ( rule__UnsignedNumber__Alternatives ) ) ;
    public final void ruleUnsignedNumber() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2038:2: ( ( ( rule__UnsignedNumber__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2039:1: ( ( rule__UnsignedNumber__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2039:1: ( ( rule__UnsignedNumber__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2040:1: ( rule__UnsignedNumber__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getUnsignedNumberAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2041:1: ( rule__UnsignedNumber__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2041:2: rule__UnsignedNumber__Alternatives
            {
            pushFollow(FOLLOW_rule__UnsignedNumber__Alternatives_in_ruleUnsignedNumber4303);
            rule__UnsignedNumber__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getUnsignedNumberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleUnsignedNumber"


    // $ANTLR start "entryRuleSign"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2053:1: entryRuleSign : ruleSign EOF ;
    public final void entryRuleSign() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2054:1: ( ruleSign EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2055:1: ruleSign EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignRule()); 
            }
            pushFollow(FOLLOW_ruleSign_in_entryRuleSign4330);
            ruleSign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSignRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleSign4337); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSign"


    // $ANTLR start "ruleSign"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2062:1: ruleSign : ( ( rule__Sign__Alternatives ) ) ;
    public final void ruleSign() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2066:2: ( ( ( rule__Sign__Alternatives ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2067:1: ( ( rule__Sign__Alternatives ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2067:1: ( ( rule__Sign__Alternatives ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2068:1: ( rule__Sign__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignAccess().getAlternatives()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2069:1: ( rule__Sign__Alternatives )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2069:2: rule__Sign__Alternatives
            {
            pushFollow(FOLLOW_rule__Sign__Alternatives_in_ruleSign4363);
            rule__Sign__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSignAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSign"


    // $ANTLR start "entryRuleQualifiedName"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2081:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2082:1: ( ruleQualifiedName EOF )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2083:1: ruleQualifiedName EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameRule()); 
            }
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName4390);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameRule()); 
            }
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName4397); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedName"


    // $ANTLR start "ruleQualifiedName"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2090:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
    public final void ruleQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2094:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2095:1: ( ( rule__QualifiedName__Group__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2095:1: ( ( rule__QualifiedName__Group__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2096:1: ( rule__QualifiedName__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2097:1: ( rule__QualifiedName__Group__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2097:2: rule__QualifiedName__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName4423);
            rule__QualifiedName__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedName"


    // $ANTLR start "rule__Astra__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2109:1: rule__Astra__Alternatives : ( ( ( rule__Astra__Group_0__0 ) ) | ( ruleAgentUnitTest ) );
    public final void rule__Astra__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2113:1: ( ( ( rule__Astra__Group_0__0 ) ) | ( ruleAgentUnitTest ) )
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==19||LA1_0==58||LA1_0==65) ) {
                alt1=1;
            }
            else if ( (LA1_0==34) ) {
                alt1=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }
            switch (alt1) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2114:1: ( ( rule__Astra__Group_0__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2114:1: ( ( rule__Astra__Group_0__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2115:1: ( rule__Astra__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAstraAccess().getGroup_0()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2116:1: ( rule__Astra__Group_0__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2116:2: rule__Astra__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Astra__Group_0__0_in_rule__Astra__Alternatives4459);
                    rule__Astra__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAstraAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2120:6: ( ruleAgentUnitTest )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2120:6: ( ruleAgentUnitTest )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2121:1: ruleAgentUnitTest
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAstraAccess().getAgentUnitTestParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleAgentUnitTest_in_rule__Astra__Alternatives4477);
                    ruleAgentUnitTest();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAstraAccess().getAgentUnitTestParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__Alternatives"


    // $ANTLR start "rule__TestStatement__Alternatives_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2131:1: rule__TestStatement__Alternatives_0 : ( ( ruleTestOperation ) | ( ruleTestDefinition ) );
    public final void rule__TestStatement__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2135:1: ( ( ruleTestOperation ) | ( ruleTestDefinition ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==RULE_IDENTIFIER||LA2_0==44||(LA2_0>=46 && LA2_0<=47)) ) {
                alt2=1;
            }
            else if ( (LA2_0==49||(LA2_0>=52 && LA2_0<=56)) ) {
                alt2=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2136:1: ( ruleTestOperation )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2136:1: ( ruleTestOperation )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2137:1: ruleTestOperation
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestStatementAccess().getTestOperationParserRuleCall_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleTestOperation_in_rule__TestStatement__Alternatives_04509);
                    ruleTestOperation();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestStatementAccess().getTestOperationParserRuleCall_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2142:6: ( ruleTestDefinition )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2142:6: ( ruleTestDefinition )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2143:1: ruleTestDefinition
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestStatementAccess().getTestDefinitionParserRuleCall_0_1()); 
                    }
                    pushFollow(FOLLOW_ruleTestDefinition_in_rule__TestStatement__Alternatives_04526);
                    ruleTestDefinition();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestStatementAccess().getTestDefinitionParserRuleCall_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestStatement__Alternatives_0"


    // $ANTLR start "rule__TestOperation__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2153:1: rule__TestOperation__Alternatives : ( ( ruleTestAgentRun ) | ( ruleTestAssert ) | ( ruleTestVerify ) );
    public final void rule__TestOperation__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2157:1: ( ( ruleTestAgentRun ) | ( ruleTestAssert ) | ( ruleTestVerify ) )
            int alt3=3;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==RULE_IDENTIFIER) ) {
                int LA3_1 = input.LA(2);

                if ( (LA3_1==40) ) {
                    int LA3_3 = input.LA(3);

                    if ( (LA3_3==48) ) {
                        alt3=3;
                    }
                    else if ( (LA3_3==41) ) {
                        alt3=1;
                    }
                    else {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("", 3, 3, input);

                        throw nvae;
                    }
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 3, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA3_0==44||(LA3_0>=46 && LA3_0<=47)) ) {
                alt3=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2158:1: ( ruleTestAgentRun )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2158:1: ( ruleTestAgentRun )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2159:1: ruleTestAgentRun
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestOperationAccess().getTestAgentRunParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleTestAgentRun_in_rule__TestOperation__Alternatives4558);
                    ruleTestAgentRun();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestOperationAccess().getTestAgentRunParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2164:6: ( ruleTestAssert )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2164:6: ( ruleTestAssert )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2165:1: ruleTestAssert
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestOperationAccess().getTestAssertParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTestAssert_in_rule__TestOperation__Alternatives4575);
                    ruleTestAssert();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestOperationAccess().getTestAssertParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2170:6: ( ruleTestVerify )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2170:6: ( ruleTestVerify )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2171:1: ruleTestVerify
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestOperationAccess().getTestVerifyParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleTestVerify_in_rule__TestOperation__Alternatives4592);
                    ruleTestVerify();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestOperationAccess().getTestVerifyParserRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestOperation__Alternatives"


    // $ANTLR start "rule__TestAgentRunItem__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2181:1: rule__TestAgentRunItem__Alternatives : ( ( ( rule__TestAgentRunItem__Group_0__0 ) ) | ( ( rule__TestAgentRunItem__Group_1__0 ) ) );
    public final void rule__TestAgentRunItem__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2185:1: ( ( ( rule__TestAgentRunItem__Group_0__0 ) ) | ( ( rule__TestAgentRunItem__Group_1__0 ) ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==RULE_INTEGER) ) {
                alt4=1;
            }
            else if ( (LA4_0==RULE_IDENTIFIER) ) {
                alt4=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2186:1: ( ( rule__TestAgentRunItem__Group_0__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2186:1: ( ( rule__TestAgentRunItem__Group_0__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2187:1: ( rule__TestAgentRunItem__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAgentRunItemAccess().getGroup_0()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2188:1: ( rule__TestAgentRunItem__Group_0__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2188:2: rule__TestAgentRunItem__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__TestAgentRunItem__Group_0__0_in_rule__TestAgentRunItem__Alternatives4624);
                    rule__TestAgentRunItem__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAgentRunItemAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2192:6: ( ( rule__TestAgentRunItem__Group_1__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2192:6: ( ( rule__TestAgentRunItem__Group_1__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2193:1: ( rule__TestAgentRunItem__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAgentRunItemAccess().getGroup_1()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2194:1: ( rule__TestAgentRunItem__Group_1__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2194:2: rule__TestAgentRunItem__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__TestAgentRunItem__Group_1__0_in_rule__TestAgentRunItem__Alternatives4642);
                    rule__TestAgentRunItem__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAgentRunItemAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Alternatives"


    // $ANTLR start "rule__TestAssert__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2203:1: rule__TestAssert__Alternatives : ( ( ruleTestEquals ) | ( ruleTestTrue ) | ( ruleTestFalse ) );
    public final void rule__TestAssert__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2207:1: ( ( ruleTestEquals ) | ( ruleTestTrue ) | ( ruleTestFalse ) )
            int alt5=3;
            switch ( input.LA(1) ) {
            case 44:
                {
                alt5=1;
                }
                break;
            case 46:
                {
                alt5=2;
                }
                break;
            case 47:
                {
                alt5=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }

            switch (alt5) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2208:1: ( ruleTestEquals )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2208:1: ( ruleTestEquals )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2209:1: ruleTestEquals
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAssertAccess().getTestEqualsParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleTestEquals_in_rule__TestAssert__Alternatives4675);
                    ruleTestEquals();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAssertAccess().getTestEqualsParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2214:6: ( ruleTestTrue )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2214:6: ( ruleTestTrue )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2215:1: ruleTestTrue
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAssertAccess().getTestTrueParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTestTrue_in_rule__TestAssert__Alternatives4692);
                    ruleTestTrue();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAssertAccess().getTestTrueParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2220:6: ( ruleTestFalse )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2220:6: ( ruleTestFalse )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2221:1: ruleTestFalse
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAssertAccess().getTestFalseParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleTestFalse_in_rule__TestAssert__Alternatives4709);
                    ruleTestFalse();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAssertAccess().getTestFalseParserRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAssert__Alternatives"


    // $ANTLR start "rule__TestAgentProperity__ProperityAlternatives_2_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2231:1: rule__TestAgentProperity__ProperityAlternatives_2_0 : ( ( 'Beliefs' ) | ( 'Rules' ) | ( 'Plans' ) );
    public final void rule__TestAgentProperity__ProperityAlternatives_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2235:1: ( ( 'Beliefs' ) | ( 'Rules' ) | ( 'Plans' ) )
            int alt6=3;
            switch ( input.LA(1) ) {
            case 13:
                {
                alt6=1;
                }
                break;
            case 14:
                {
                alt6=2;
                }
                break;
            case 15:
                {
                alt6=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2236:1: ( 'Beliefs' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2236:1: ( 'Beliefs' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2237:1: 'Beliefs'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAgentProperityAccess().getProperityBeliefsKeyword_2_0_0()); 
                    }
                    match(input,13,FOLLOW_13_in_rule__TestAgentProperity__ProperityAlternatives_2_04742); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAgentProperityAccess().getProperityBeliefsKeyword_2_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2244:6: ( 'Rules' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2244:6: ( 'Rules' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2245:1: 'Rules'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAgentProperityAccess().getProperityRulesKeyword_2_0_1()); 
                    }
                    match(input,14,FOLLOW_14_in_rule__TestAgentProperity__ProperityAlternatives_2_04762); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAgentProperityAccess().getProperityRulesKeyword_2_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2252:6: ( 'Plans' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2252:6: ( 'Plans' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2253:1: 'Plans'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestAgentProperityAccess().getProperityPlansKeyword_2_0_2()); 
                    }
                    match(input,15,FOLLOW_15_in_rule__TestAgentProperity__ProperityAlternatives_2_04782); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestAgentProperityAccess().getProperityPlansKeyword_2_0_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__ProperityAlternatives_2_0"


    // $ANTLR start "rule__TestCondition__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2265:1: rule__TestCondition__Alternatives : ( ( ruleTestVerify ) | ( ruleTestAgentRun ) );
    public final void rule__TestCondition__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2269:1: ( ( ruleTestVerify ) | ( ruleTestAgentRun ) )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==RULE_IDENTIFIER) ) {
                int LA7_1 = input.LA(2);

                if ( (LA7_1==40) ) {
                    int LA7_2 = input.LA(3);

                    if ( (LA7_2==41) ) {
                        alt7=2;
                    }
                    else if ( (LA7_2==48) ) {
                        alt7=1;
                    }
                    else {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("", 7, 2, input);

                        throw nvae;
                    }
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 7, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2270:1: ( ruleTestVerify )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2270:1: ( ruleTestVerify )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2271:1: ruleTestVerify
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestConditionAccess().getTestVerifyParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleTestVerify_in_rule__TestCondition__Alternatives4816);
                    ruleTestVerify();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestConditionAccess().getTestVerifyParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2276:6: ( ruleTestAgentRun )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2276:6: ( ruleTestAgentRun )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2277:1: ruleTestAgentRun
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestConditionAccess().getTestAgentRunParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTestAgentRun_in_rule__TestCondition__Alternatives4833);
                    ruleTestAgentRun();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestConditionAccess().getTestAgentRunParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCondition__Alternatives"


    // $ANTLR start "rule__TestDefinition__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2287:1: rule__TestDefinition__Alternatives : ( ( ruleTestBeliefs ) | ( ruleTestBelief ) | ( ruleTestPlan ) | ( ruleTestEvent ) | ( ruleTestGoal ) | ( ruleTestRule ) );
    public final void rule__TestDefinition__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2291:1: ( ( ruleTestBeliefs ) | ( ruleTestBelief ) | ( ruleTestPlan ) | ( ruleTestEvent ) | ( ruleTestGoal ) | ( ruleTestRule ) )
            int alt8=6;
            switch ( input.LA(1) ) {
            case 49:
                {
                alt8=1;
                }
                break;
            case 52:
                {
                alt8=2;
                }
                break;
            case 53:
                {
                alt8=3;
                }
                break;
            case 54:
                {
                alt8=4;
                }
                break;
            case 55:
                {
                alt8=5;
                }
                break;
            case 56:
                {
                alt8=6;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }

            switch (alt8) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2292:1: ( ruleTestBeliefs )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2292:1: ( ruleTestBeliefs )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2293:1: ruleTestBeliefs
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestDefinitionAccess().getTestBeliefsParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleTestBeliefs_in_rule__TestDefinition__Alternatives4865);
                    ruleTestBeliefs();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestDefinitionAccess().getTestBeliefsParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2298:6: ( ruleTestBelief )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2298:6: ( ruleTestBelief )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2299:1: ruleTestBelief
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestDefinitionAccess().getTestBeliefParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleTestBelief_in_rule__TestDefinition__Alternatives4882);
                    ruleTestBelief();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestDefinitionAccess().getTestBeliefParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2304:6: ( ruleTestPlan )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2304:6: ( ruleTestPlan )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2305:1: ruleTestPlan
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestDefinitionAccess().getTestPlanParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleTestPlan_in_rule__TestDefinition__Alternatives4899);
                    ruleTestPlan();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestDefinitionAccess().getTestPlanParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2310:6: ( ruleTestEvent )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2310:6: ( ruleTestEvent )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2311:1: ruleTestEvent
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestDefinitionAccess().getTestEventParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_ruleTestEvent_in_rule__TestDefinition__Alternatives4916);
                    ruleTestEvent();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestDefinitionAccess().getTestEventParserRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2316:6: ( ruleTestGoal )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2316:6: ( ruleTestGoal )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2317:1: ruleTestGoal
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestDefinitionAccess().getTestGoalParserRuleCall_4()); 
                    }
                    pushFollow(FOLLOW_ruleTestGoal_in_rule__TestDefinition__Alternatives4933);
                    ruleTestGoal();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestDefinitionAccess().getTestGoalParserRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2322:6: ( ruleTestRule )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2322:6: ( ruleTestRule )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2323:1: ruleTestRule
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTestDefinitionAccess().getTestRuleParserRuleCall_5()); 
                    }
                    pushFollow(FOLLOW_ruleTestRule_in_rule__TestDefinition__Alternatives4950);
                    ruleTestRule();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTestDefinitionAccess().getTestRuleParserRuleCall_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestDefinition__Alternatives"


    // $ANTLR start "rule__AbstractElement__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2333:1: rule__AbstractElement__Alternatives : ( ( rulePlanStatement ) | ( ruleRuleStatement ) | ( ruleInitialStatement ) | ( ruleTeleoReactiveFunction ) );
    public final void rule__AbstractElement__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2337:1: ( ( rulePlanStatement ) | ( ruleRuleStatement ) | ( ruleInitialStatement ) | ( ruleTeleoReactiveFunction ) )
            int alt9=4;
            switch ( input.LA(1) ) {
            case 16:
                {
                int LA9_1 = input.LA(2);

                if ( (LA9_1==53) ) {
                    alt9=1;
                }
                else if ( (LA9_1==56) ) {
                    alt9=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 9, 1, input);

                    throw nvae;
                }
                }
                break;
            case 17:
                {
                int LA9_2 = input.LA(2);

                if ( (LA9_2==56) ) {
                    alt9=2;
                }
                else if ( (LA9_2==53) ) {
                    alt9=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 9, 2, input);

                    throw nvae;
                }
                }
                break;
            case 53:
                {
                alt9=1;
                }
                break;
            case 56:
                {
                alt9=2;
                }
                break;
            case 60:
                {
                alt9=3;
                }
                break;
            case 18:
            case 19:
            case 20:
            case 62:
                {
                alt9=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }

            switch (alt9) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2338:1: ( rulePlanStatement )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2338:1: ( rulePlanStatement )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2339:1: rulePlanStatement
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAbstractElementAccess().getPlanStatementParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_rulePlanStatement_in_rule__AbstractElement__Alternatives4982);
                    rulePlanStatement();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAbstractElementAccess().getPlanStatementParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2344:6: ( ruleRuleStatement )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2344:6: ( ruleRuleStatement )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2345:1: ruleRuleStatement
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAbstractElementAccess().getRuleStatementParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleRuleStatement_in_rule__AbstractElement__Alternatives4999);
                    ruleRuleStatement();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAbstractElementAccess().getRuleStatementParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2350:6: ( ruleInitialStatement )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2350:6: ( ruleInitialStatement )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2351:1: ruleInitialStatement
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAbstractElementAccess().getInitialStatementParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleInitialStatement_in_rule__AbstractElement__Alternatives5016);
                    ruleInitialStatement();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAbstractElementAccess().getInitialStatementParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2356:6: ( ruleTeleoReactiveFunction )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2356:6: ( ruleTeleoReactiveFunction )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2357:1: ruleTeleoReactiveFunction
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAbstractElementAccess().getTeleoReactiveFunctionParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_ruleTeleoReactiveFunction_in_rule__AbstractElement__Alternatives5033);
                    ruleTeleoReactiveFunction();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAbstractElementAccess().getTeleoReactiveFunctionParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AbstractElement__Alternatives"


    // $ANTLR start "rule__InitialStatement__FormulaAlternatives_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2367:1: rule__InitialStatement__FormulaAlternatives_1_0 : ( ( rulePredicate ) | ( ruleGoal ) );
    public final void rule__InitialStatement__FormulaAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2371:1: ( ( rulePredicate ) | ( ruleGoal ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==RULE_IDENTIFIER) ) {
                alt10=1;
            }
            else if ( (LA10_0==61) ) {
                alt10=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2372:1: ( rulePredicate )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2372:1: ( rulePredicate )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2373:1: rulePredicate
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInitialStatementAccess().getFormulaPredicateParserRuleCall_1_0_0()); 
                    }
                    pushFollow(FOLLOW_rulePredicate_in_rule__InitialStatement__FormulaAlternatives_1_05065);
                    rulePredicate();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInitialStatementAccess().getFormulaPredicateParserRuleCall_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2378:6: ( ruleGoal )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2378:6: ( ruleGoal )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2379:1: ruleGoal
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getInitialStatementAccess().getFormulaGoalParserRuleCall_1_0_1()); 
                    }
                    pushFollow(FOLLOW_ruleGoal_in_rule__InitialStatement__FormulaAlternatives_1_05082);
                    ruleGoal();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getInitialStatementAccess().getFormulaGoalParserRuleCall_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__FormulaAlternatives_1_0"


    // $ANTLR start "rule__PlanStatement__Alternatives_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2389:1: rule__PlanStatement__Alternatives_0 : ( ( 'final' ) | ( 'private' ) );
    public final void rule__PlanStatement__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2393:1: ( ( 'final' ) | ( 'private' ) )
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==16) ) {
                alt11=1;
            }
            else if ( (LA11_0==17) ) {
                alt11=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 11, 0, input);

                throw nvae;
            }
            switch (alt11) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2394:1: ( 'final' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2394:1: ( 'final' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2395:1: 'final'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPlanStatementAccess().getFinalKeyword_0_0()); 
                    }
                    match(input,16,FOLLOW_16_in_rule__PlanStatement__Alternatives_05115); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPlanStatementAccess().getFinalKeyword_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2402:6: ( 'private' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2402:6: ( 'private' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2403:1: 'private'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPlanStatementAccess().getPrivateKeyword_0_1()); 
                    }
                    match(input,17,FOLLOW_17_in_rule__PlanStatement__Alternatives_05135); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPlanStatementAccess().getPrivateKeyword_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Alternatives_0"


    // $ANTLR start "rule__RuleStatement__Alternatives_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2415:1: rule__RuleStatement__Alternatives_0 : ( ( 'final' ) | ( 'private' ) );
    public final void rule__RuleStatement__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2419:1: ( ( 'final' ) | ( 'private' ) )
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==16) ) {
                alt12=1;
            }
            else if ( (LA12_0==17) ) {
                alt12=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }
            switch (alt12) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2420:1: ( 'final' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2420:1: ( 'final' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2421:1: 'final'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getRuleStatementAccess().getFinalKeyword_0_0()); 
                    }
                    match(input,16,FOLLOW_16_in_rule__RuleStatement__Alternatives_05170); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getRuleStatementAccess().getFinalKeyword_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2428:6: ( 'private' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2428:6: ( 'private' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2429:1: 'private'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getRuleStatementAccess().getPrivateKeyword_0_1()); 
                    }
                    match(input,17,FOLLOW_17_in_rule__RuleStatement__Alternatives_05190); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getRuleStatementAccess().getPrivateKeyword_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Alternatives_0"


    // $ANTLR start "rule__TeleoReactiveFunction__Alternatives_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2441:1: rule__TeleoReactiveFunction__Alternatives_0 : ( ( 'overrides' ) | ( 'abstract' ) | ( 'implements' ) );
    public final void rule__TeleoReactiveFunction__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2445:1: ( ( 'overrides' ) | ( 'abstract' ) | ( 'implements' ) )
            int alt13=3;
            switch ( input.LA(1) ) {
            case 18:
                {
                alt13=1;
                }
                break;
            case 19:
                {
                alt13=2;
                }
                break;
            case 20:
                {
                alt13=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;
            }

            switch (alt13) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2446:1: ( 'overrides' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2446:1: ( 'overrides' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2447:1: 'overrides'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTeleoReactiveFunctionAccess().getOverridesKeyword_0_0()); 
                    }
                    match(input,18,FOLLOW_18_in_rule__TeleoReactiveFunction__Alternatives_05225); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTeleoReactiveFunctionAccess().getOverridesKeyword_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2454:6: ( 'abstract' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2454:6: ( 'abstract' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2455:1: 'abstract'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTeleoReactiveFunctionAccess().getAbstractKeyword_0_1()); 
                    }
                    match(input,19,FOLLOW_19_in_rule__TeleoReactiveFunction__Alternatives_05245); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTeleoReactiveFunctionAccess().getAbstractKeyword_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2462:6: ( 'implements' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2462:6: ( 'implements' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2463:1: 'implements'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTeleoReactiveFunctionAccess().getImplementsKeyword_0_2()); 
                    }
                    match(input,20,FOLLOW_20_in_rule__TeleoReactiveFunction__Alternatives_05265); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTeleoReactiveFunctionAccess().getImplementsKeyword_0_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Alternatives_0"


    // $ANTLR start "rule__Statement__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2475:1: rule__Statement__Alternatives : ( ( ( rule__Statement__Group_0__0 ) ) | ( ( rule__Statement__Alternatives_1 ) ) );
    public final void rule__Statement__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2479:1: ( ( ( rule__Statement__Group_0__0 ) ) | ( ( rule__Statement__Alternatives_1 ) ) )
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==RULE_IDENTIFIER||(LA14_0>=27 && LA14_0<=28)||(LA14_0>=32 && LA14_0<=33)||LA14_0==61||LA14_0==67||LA14_0==69||(LA14_0>=73 && LA14_0<=75)||LA14_0==78||LA14_0==80||(LA14_0>=85 && LA14_0<=91)) ) {
                alt14=1;
            }
            else if ( (LA14_0==35||(LA14_0>=71 && LA14_0<=72)||LA14_0==76||(LA14_0>=81 && LA14_0<=82)) ) {
                alt14=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }
            switch (alt14) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2480:1: ( ( rule__Statement__Group_0__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2480:1: ( ( rule__Statement__Group_0__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2481:1: ( rule__Statement__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getGroup_0()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2482:1: ( rule__Statement__Group_0__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2482:2: rule__Statement__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Statement__Group_0__0_in_rule__Statement__Alternatives5299);
                    rule__Statement__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2486:6: ( ( rule__Statement__Alternatives_1 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2486:6: ( ( rule__Statement__Alternatives_1 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2487:1: ( rule__Statement__Alternatives_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getAlternatives_1()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2488:1: ( rule__Statement__Alternatives_1 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2488:2: rule__Statement__Alternatives_1
                    {
                    pushFollow(FOLLOW_rule__Statement__Alternatives_1_in_rule__Statement__Alternatives5317);
                    rule__Statement__Alternatives_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getAlternatives_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Alternatives"


    // $ANTLR start "rule__Statement__Alternatives_0_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2497:1: rule__Statement__Alternatives_0_0 : ( ( ruleBeliefUpdate ) | ( ruleTRControl ) | ( ruleGoalStep ) | ( ruleSendMessage ) | ( ruleAssignment ) | ( ruleLibraryAction ) | ( ruleTypeStep ) | ( rulePredicate ) | ( ruleQuery ) | ( ruleWait ) | ( ruleEISSetup ) | ( ruleEISPerform ) );
    public final void rule__Statement__Alternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2501:1: ( ( ruleBeliefUpdate ) | ( ruleTRControl ) | ( ruleGoalStep ) | ( ruleSendMessage ) | ( ruleAssignment ) | ( ruleLibraryAction ) | ( ruleTypeStep ) | ( rulePredicate ) | ( ruleQuery ) | ( ruleWait ) | ( ruleEISSetup ) | ( ruleEISPerform ) )
            int alt15=12;
            alt15 = dfa15.predict(input);
            switch (alt15) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2502:1: ( ruleBeliefUpdate )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2502:1: ( ruleBeliefUpdate )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2503:1: ruleBeliefUpdate
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getBeliefUpdateParserRuleCall_0_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleBeliefUpdate_in_rule__Statement__Alternatives_0_05350);
                    ruleBeliefUpdate();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getBeliefUpdateParserRuleCall_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2508:6: ( ruleTRControl )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2508:6: ( ruleTRControl )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2509:1: ruleTRControl
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getTRControlParserRuleCall_0_0_1()); 
                    }
                    pushFollow(FOLLOW_ruleTRControl_in_rule__Statement__Alternatives_0_05367);
                    ruleTRControl();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getTRControlParserRuleCall_0_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2514:6: ( ruleGoalStep )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2514:6: ( ruleGoalStep )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2515:1: ruleGoalStep
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getGoalStepParserRuleCall_0_0_2()); 
                    }
                    pushFollow(FOLLOW_ruleGoalStep_in_rule__Statement__Alternatives_0_05384);
                    ruleGoalStep();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getGoalStepParserRuleCall_0_0_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2520:6: ( ruleSendMessage )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2520:6: ( ruleSendMessage )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2521:1: ruleSendMessage
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getSendMessageParserRuleCall_0_0_3()); 
                    }
                    pushFollow(FOLLOW_ruleSendMessage_in_rule__Statement__Alternatives_0_05401);
                    ruleSendMessage();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getSendMessageParserRuleCall_0_0_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2526:6: ( ruleAssignment )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2526:6: ( ruleAssignment )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2527:1: ruleAssignment
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getAssignmentParserRuleCall_0_0_4()); 
                    }
                    pushFollow(FOLLOW_ruleAssignment_in_rule__Statement__Alternatives_0_05418);
                    ruleAssignment();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getAssignmentParserRuleCall_0_0_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2532:6: ( ruleLibraryAction )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2532:6: ( ruleLibraryAction )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2533:1: ruleLibraryAction
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getLibraryActionParserRuleCall_0_0_5()); 
                    }
                    pushFollow(FOLLOW_ruleLibraryAction_in_rule__Statement__Alternatives_0_05435);
                    ruleLibraryAction();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getLibraryActionParserRuleCall_0_0_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2538:6: ( ruleTypeStep )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2538:6: ( ruleTypeStep )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2539:1: ruleTypeStep
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getTypeStepParserRuleCall_0_0_6()); 
                    }
                    pushFollow(FOLLOW_ruleTypeStep_in_rule__Statement__Alternatives_0_05452);
                    ruleTypeStep();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getTypeStepParserRuleCall_0_0_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2544:6: ( rulePredicate )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2544:6: ( rulePredicate )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2545:1: rulePredicate
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getPredicateParserRuleCall_0_0_7()); 
                    }
                    pushFollow(FOLLOW_rulePredicate_in_rule__Statement__Alternatives_0_05469);
                    rulePredicate();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getPredicateParserRuleCall_0_0_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2550:6: ( ruleQuery )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2550:6: ( ruleQuery )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2551:1: ruleQuery
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getQueryParserRuleCall_0_0_8()); 
                    }
                    pushFollow(FOLLOW_ruleQuery_in_rule__Statement__Alternatives_0_05486);
                    ruleQuery();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getQueryParserRuleCall_0_0_8()); 
                    }

                    }


                    }
                    break;
                case 10 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2556:6: ( ruleWait )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2556:6: ( ruleWait )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2557:1: ruleWait
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getWaitParserRuleCall_0_0_9()); 
                    }
                    pushFollow(FOLLOW_ruleWait_in_rule__Statement__Alternatives_0_05503);
                    ruleWait();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getWaitParserRuleCall_0_0_9()); 
                    }

                    }


                    }
                    break;
                case 11 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2562:6: ( ruleEISSetup )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2562:6: ( ruleEISSetup )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2563:1: ruleEISSetup
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getEISSetupParserRuleCall_0_0_10()); 
                    }
                    pushFollow(FOLLOW_ruleEISSetup_in_rule__Statement__Alternatives_0_05520);
                    ruleEISSetup();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getEISSetupParserRuleCall_0_0_10()); 
                    }

                    }


                    }
                    break;
                case 12 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2568:6: ( ruleEISPerform )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2568:6: ( ruleEISPerform )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2569:1: ruleEISPerform
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getEISPerformParserRuleCall_0_0_11()); 
                    }
                    pushFollow(FOLLOW_ruleEISPerform_in_rule__Statement__Alternatives_0_05537);
                    ruleEISPerform();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getEISPerformParserRuleCall_0_0_11()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Alternatives_0_0"


    // $ANTLR start "rule__Statement__Alternatives_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2579:1: rule__Statement__Alternatives_1 : ( ( ruleBlock ) | ( ruleWhile ) | ( ruleWhen ) | ( ruleForEach ) | ( ruleSynchronizedBlock ) | ( ruleIf ) );
    public final void rule__Statement__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2583:1: ( ( ruleBlock ) | ( ruleWhile ) | ( ruleWhen ) | ( ruleForEach ) | ( ruleSynchronizedBlock ) | ( ruleIf ) )
            int alt16=6;
            switch ( input.LA(1) ) {
            case 35:
                {
                alt16=1;
                }
                break;
            case 82:
                {
                alt16=2;
                }
                break;
            case 81:
                {
                alt16=3;
                }
                break;
            case 72:
                {
                alt16=4;
                }
                break;
            case 71:
                {
                alt16=5;
                }
                break;
            case 76:
                {
                alt16=6;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }

            switch (alt16) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2584:1: ( ruleBlock )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2584:1: ( ruleBlock )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2585:1: ruleBlock
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getBlockParserRuleCall_1_0()); 
                    }
                    pushFollow(FOLLOW_ruleBlock_in_rule__Statement__Alternatives_15569);
                    ruleBlock();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getBlockParserRuleCall_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2590:6: ( ruleWhile )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2590:6: ( ruleWhile )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2591:1: ruleWhile
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getWhileParserRuleCall_1_1()); 
                    }
                    pushFollow(FOLLOW_ruleWhile_in_rule__Statement__Alternatives_15586);
                    ruleWhile();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getWhileParserRuleCall_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2596:6: ( ruleWhen )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2596:6: ( ruleWhen )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2597:1: ruleWhen
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getWhenParserRuleCall_1_2()); 
                    }
                    pushFollow(FOLLOW_ruleWhen_in_rule__Statement__Alternatives_15603);
                    ruleWhen();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getWhenParserRuleCall_1_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2602:6: ( ruleForEach )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2602:6: ( ruleForEach )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2603:1: ruleForEach
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getForEachParserRuleCall_1_3()); 
                    }
                    pushFollow(FOLLOW_ruleForEach_in_rule__Statement__Alternatives_15620);
                    ruleForEach();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getForEachParserRuleCall_1_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2608:6: ( ruleSynchronizedBlock )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2608:6: ( ruleSynchronizedBlock )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2609:1: ruleSynchronizedBlock
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getSynchronizedBlockParserRuleCall_1_4()); 
                    }
                    pushFollow(FOLLOW_ruleSynchronizedBlock_in_rule__Statement__Alternatives_15637);
                    ruleSynchronizedBlock();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getSynchronizedBlockParserRuleCall_1_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2614:6: ( ruleIf )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2614:6: ( ruleIf )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2615:1: ruleIf
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getStatementAccess().getIfParserRuleCall_1_5()); 
                    }
                    pushFollow(FOLLOW_ruleIf_in_rule__Statement__Alternatives_15654);
                    ruleIf();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getStatementAccess().getIfParserRuleCall_1_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Alternatives_1"


    // $ANTLR start "rule__Formula__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2625:1: rule__Formula__Alternatives : ( ( ruleComparison ) | ( ruleLibraryFormula ) | ( ruleNOT ) | ( ruleTRActive ) );
    public final void rule__Formula__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2629:1: ( ( ruleComparison ) | ( ruleLibraryFormula ) | ( ruleNOT ) | ( ruleTRActive ) )
            int alt17=4;
            alt17 = dfa17.predict(input);
            switch (alt17) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2630:1: ( ruleComparison )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2630:1: ( ruleComparison )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2631:1: ruleComparison
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFormulaAccess().getComparisonParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleComparison_in_rule__Formula__Alternatives5686);
                    ruleComparison();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFormulaAccess().getComparisonParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2636:6: ( ruleLibraryFormula )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2636:6: ( ruleLibraryFormula )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2637:1: ruleLibraryFormula
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFormulaAccess().getLibraryFormulaParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleLibraryFormula_in_rule__Formula__Alternatives5703);
                    ruleLibraryFormula();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFormulaAccess().getLibraryFormulaParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2642:6: ( ruleNOT )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2642:6: ( ruleNOT )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2643:1: ruleNOT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFormulaAccess().getNOTParserRuleCall_2()); 
                    }
                    pushFollow(FOLLOW_ruleNOT_in_rule__Formula__Alternatives5720);
                    ruleNOT();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFormulaAccess().getNOTParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2648:6: ( ruleTRActive )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2648:6: ( ruleTRActive )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2649:1: ruleTRActive
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFormulaAccess().getTRActiveParserRuleCall_3()); 
                    }
                    pushFollow(FOLLOW_ruleTRActive_in_rule__Formula__Alternatives5737);
                    ruleTRActive();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFormulaAccess().getTRActiveParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Formula__Alternatives"


    // $ANTLR start "rule__Comparison__OperationAlternatives_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2659:1: rule__Comparison__OperationAlternatives_1_0 : ( ( '==' ) | ( '!=' ) | ( '>' ) | ( '<' ) | ( '<=' ) | ( '>=' ) );
    public final void rule__Comparison__OperationAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2663:1: ( ( '==' ) | ( '!=' ) | ( '>' ) | ( '<' ) | ( '<=' ) | ( '>=' ) )
            int alt18=6;
            switch ( input.LA(1) ) {
            case 21:
                {
                alt18=1;
                }
                break;
            case 22:
                {
                alt18=2;
                }
                break;
            case 23:
                {
                alt18=3;
                }
                break;
            case 24:
                {
                alt18=4;
                }
                break;
            case 25:
                {
                alt18=5;
                }
                break;
            case 26:
                {
                alt18=6;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 18, 0, input);

                throw nvae;
            }

            switch (alt18) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2664:1: ( '==' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2664:1: ( '==' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2665:1: '=='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getComparisonAccess().getOperationEqualsSignEqualsSignKeyword_1_0_0()); 
                    }
                    match(input,21,FOLLOW_21_in_rule__Comparison__OperationAlternatives_1_05770); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getComparisonAccess().getOperationEqualsSignEqualsSignKeyword_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2672:6: ( '!=' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2672:6: ( '!=' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2673:1: '!='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getComparisonAccess().getOperationExclamationMarkEqualsSignKeyword_1_0_1()); 
                    }
                    match(input,22,FOLLOW_22_in_rule__Comparison__OperationAlternatives_1_05790); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getComparisonAccess().getOperationExclamationMarkEqualsSignKeyword_1_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2680:6: ( '>' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2680:6: ( '>' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2681:1: '>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getComparisonAccess().getOperationGreaterThanSignKeyword_1_0_2()); 
                    }
                    match(input,23,FOLLOW_23_in_rule__Comparison__OperationAlternatives_1_05810); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getComparisonAccess().getOperationGreaterThanSignKeyword_1_0_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2688:6: ( '<' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2688:6: ( '<' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2689:1: '<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getComparisonAccess().getOperationLessThanSignKeyword_1_0_3()); 
                    }
                    match(input,24,FOLLOW_24_in_rule__Comparison__OperationAlternatives_1_05830); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getComparisonAccess().getOperationLessThanSignKeyword_1_0_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2696:6: ( '<=' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2696:6: ( '<=' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2697:1: '<='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getComparisonAccess().getOperationLessThanSignEqualsSignKeyword_1_0_4()); 
                    }
                    match(input,25,FOLLOW_25_in_rule__Comparison__OperationAlternatives_1_05850); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getComparisonAccess().getOperationLessThanSignEqualsSignKeyword_1_0_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2704:6: ( '>=' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2704:6: ( '>=' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2705:1: '>='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getComparisonAccess().getOperationGreaterThanSignEqualsSignKeyword_1_0_5()); 
                    }
                    match(input,26,FOLLOW_26_in_rule__Comparison__OperationAlternatives_1_05870); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getComparisonAccess().getOperationGreaterThanSignEqualsSignKeyword_1_0_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__OperationAlternatives_1_0"


    // $ANTLR start "rule__Event__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2717:1: rule__Event__Alternatives : ( ( ruleMentalEvent ) | ( ruleMessageEvent ) );
    public final void rule__Event__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2721:1: ( ( ruleMentalEvent ) | ( ruleMessageEvent ) )
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( ((LA19_0>=27 && LA19_0<=28)) ) {
                alt19=1;
            }
            else if ( (LA19_0==64) ) {
                alt19=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;
            }
            switch (alt19) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2722:1: ( ruleMentalEvent )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2722:1: ( ruleMentalEvent )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2723:1: ruleMentalEvent
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getEventAccess().getMentalEventParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleMentalEvent_in_rule__Event__Alternatives5904);
                    ruleMentalEvent();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getEventAccess().getMentalEventParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2728:6: ( ruleMessageEvent )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2728:6: ( ruleMessageEvent )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2729:1: ruleMessageEvent
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getEventAccess().getMessageEventParserRuleCall_1()); 
                    }
                    pushFollow(FOLLOW_ruleMessageEvent_in_rule__Event__Alternatives5921);
                    ruleMessageEvent();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getEventAccess().getMessageEventParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Event__Alternatives"


    // $ANTLR start "rule__MentalEvent__TypeAlternatives_0_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2739:1: rule__MentalEvent__TypeAlternatives_0_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__MentalEvent__TypeAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2743:1: ( ( '+' ) | ( '-' ) )
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==27) ) {
                alt20=1;
            }
            else if ( (LA20_0==28) ) {
                alt20=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 20, 0, input);

                throw nvae;
            }
            switch (alt20) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2744:1: ( '+' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2744:1: ( '+' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2745:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMentalEventAccess().getTypePlusSignKeyword_0_0_0()); 
                    }
                    match(input,27,FOLLOW_27_in_rule__MentalEvent__TypeAlternatives_0_05954); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMentalEventAccess().getTypePlusSignKeyword_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2752:6: ( '-' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2752:6: ( '-' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2753:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMentalEventAccess().getTypeHyphenMinusKeyword_0_0_1()); 
                    }
                    match(input,28,FOLLOW_28_in_rule__MentalEvent__TypeAlternatives_0_05974); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMentalEventAccess().getTypeHyphenMinusKeyword_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__TypeAlternatives_0_0"


    // $ANTLR start "rule__MentalEvent__FormulaAlternatives_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2765:1: rule__MentalEvent__FormulaAlternatives_1_0 : ( ( ruleFormula ) | ( ruleGoal ) );
    public final void rule__MentalEvent__FormulaAlternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2769:1: ( ( ruleFormula ) | ( ruleGoal ) )
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( ((LA21_0>=RULE_STRING && LA21_0<=RULE_IDENTIFIER)||(LA21_0>=27 && LA21_0<=28)||LA21_0==42||LA21_0==50||(LA21_0>=66 && LA21_0<=67)||LA21_0==69||LA21_0==79||(LA21_0>=84 && LA21_0<=91)) ) {
                alt21=1;
            }
            else if ( (LA21_0==61) ) {
                alt21=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 21, 0, input);

                throw nvae;
            }
            switch (alt21) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2770:1: ( ruleFormula )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2770:1: ( ruleFormula )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2771:1: ruleFormula
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMentalEventAccess().getFormulaFormulaParserRuleCall_1_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleFormula_in_rule__MentalEvent__FormulaAlternatives_1_06008);
                    ruleFormula();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMentalEventAccess().getFormulaFormulaParserRuleCall_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2776:6: ( ruleGoal )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2776:6: ( ruleGoal )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2777:1: ruleGoal
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMentalEventAccess().getFormulaGoalParserRuleCall_1_0_1()); 
                    }
                    pushFollow(FOLLOW_ruleGoal_in_rule__MentalEvent__FormulaAlternatives_1_06025);
                    ruleGoal();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMentalEventAccess().getFormulaGoalParserRuleCall_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__FormulaAlternatives_1_0"


    // $ANTLR start "rule__Addition__OperationAlternatives_1_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2787:1: rule__Addition__OperationAlternatives_1_1_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__Addition__OperationAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2791:1: ( ( '+' ) | ( '-' ) )
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( (LA22_0==27) ) {
                alt22=1;
            }
            else if ( (LA22_0==28) ) {
                alt22=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;
            }
            switch (alt22) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2792:1: ( '+' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2792:1: ( '+' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2793:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAdditionAccess().getOperationPlusSignKeyword_1_1_0_0()); 
                    }
                    match(input,27,FOLLOW_27_in_rule__Addition__OperationAlternatives_1_1_06058); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAdditionAccess().getOperationPlusSignKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2800:6: ( '-' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2800:6: ( '-' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2801:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAdditionAccess().getOperationHyphenMinusKeyword_1_1_0_1()); 
                    }
                    match(input,28,FOLLOW_28_in_rule__Addition__OperationAlternatives_1_1_06078); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAdditionAccess().getOperationHyphenMinusKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__OperationAlternatives_1_1_0"


    // $ANTLR start "rule__Multiplication__OperationAlternatives_1_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2813:1: rule__Multiplication__OperationAlternatives_1_1_0 : ( ( '*' ) | ( '/' ) | ( '%' ) );
    public final void rule__Multiplication__OperationAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2817:1: ( ( '*' ) | ( '/' ) | ( '%' ) )
            int alt23=3;
            switch ( input.LA(1) ) {
            case 29:
                {
                alt23=1;
                }
                break;
            case 30:
                {
                alt23=2;
                }
                break;
            case 31:
                {
                alt23=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }

            switch (alt23) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2818:1: ( '*' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2818:1: ( '*' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2819:1: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMultiplicationAccess().getOperationAsteriskKeyword_1_1_0_0()); 
                    }
                    match(input,29,FOLLOW_29_in_rule__Multiplication__OperationAlternatives_1_1_06113); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMultiplicationAccess().getOperationAsteriskKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2826:6: ( '/' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2826:6: ( '/' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2827:1: '/'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMultiplicationAccess().getOperationSolidusKeyword_1_1_0_1()); 
                    }
                    match(input,30,FOLLOW_30_in_rule__Multiplication__OperationAlternatives_1_1_06133); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMultiplicationAccess().getOperationSolidusKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2834:6: ( '%' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2834:6: ( '%' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2835:1: '%'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getMultiplicationAccess().getOperationPercentSignKeyword_1_1_0_2()); 
                    }
                    match(input,31,FOLLOW_31_in_rule__Multiplication__OperationAlternatives_1_1_06153); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getMultiplicationAccess().getOperationPercentSignKeyword_1_1_0_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__OperationAlternatives_1_1_0"


    // $ANTLR start "rule__Primary__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2847:1: rule__Primary__Alternatives : ( ( ( rule__Primary__Group_0__0 ) ) | ( ( rule__Primary__Group_1__0 ) ) | ( ( rule__Primary__Group_2__0 ) ) | ( ( rule__Primary__Group_3__0 ) ) | ( ( rule__Primary__Group_4__0 ) ) | ( ( rule__Primary__Group_5__0 ) ) | ( ( rule__Primary__Group_6__0 ) ) | ( ( rule__Primary__Group_7__0 ) ) );
    public final void rule__Primary__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2851:1: ( ( ( rule__Primary__Group_0__0 ) ) | ( ( rule__Primary__Group_1__0 ) ) | ( ( rule__Primary__Group_2__0 ) ) | ( ( rule__Primary__Group_3__0 ) ) | ( ( rule__Primary__Group_4__0 ) ) | ( ( rule__Primary__Group_5__0 ) ) | ( ( rule__Primary__Group_6__0 ) ) | ( ( rule__Primary__Group_7__0 ) ) )
            int alt24=8;
            alt24 = dfa24.predict(input);
            switch (alt24) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2852:1: ( ( rule__Primary__Group_0__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2852:1: ( ( rule__Primary__Group_0__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2853:1: ( rule__Primary__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_0()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2854:1: ( rule__Primary__Group_0__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2854:2: rule__Primary__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_0__0_in_rule__Primary__Alternatives6187);
                    rule__Primary__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2858:6: ( ( rule__Primary__Group_1__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2858:6: ( ( rule__Primary__Group_1__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2859:1: ( rule__Primary__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_1()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2860:1: ( rule__Primary__Group_1__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2860:2: rule__Primary__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_1__0_in_rule__Primary__Alternatives6205);
                    rule__Primary__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2864:6: ( ( rule__Primary__Group_2__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2864:6: ( ( rule__Primary__Group_2__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2865:1: ( rule__Primary__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_2()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2866:1: ( rule__Primary__Group_2__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2866:2: rule__Primary__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_2__0_in_rule__Primary__Alternatives6223);
                    rule__Primary__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2870:6: ( ( rule__Primary__Group_3__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2870:6: ( ( rule__Primary__Group_3__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2871:1: ( rule__Primary__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_3()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2872:1: ( rule__Primary__Group_3__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2872:2: rule__Primary__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_3__0_in_rule__Primary__Alternatives6241);
                    rule__Primary__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2876:6: ( ( rule__Primary__Group_4__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2876:6: ( ( rule__Primary__Group_4__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2877:1: ( rule__Primary__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_4()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2878:1: ( rule__Primary__Group_4__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2878:2: rule__Primary__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_4__0_in_rule__Primary__Alternatives6259);
                    rule__Primary__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2882:6: ( ( rule__Primary__Group_5__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2882:6: ( ( rule__Primary__Group_5__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2883:1: ( rule__Primary__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_5()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2884:1: ( rule__Primary__Group_5__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2884:2: rule__Primary__Group_5__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_5__0_in_rule__Primary__Alternatives6277);
                    rule__Primary__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2888:6: ( ( rule__Primary__Group_6__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2888:6: ( ( rule__Primary__Group_6__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2889:1: ( rule__Primary__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_6()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2890:1: ( rule__Primary__Group_6__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2890:2: rule__Primary__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_6__0_in_rule__Primary__Alternatives6295);
                    rule__Primary__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2894:6: ( ( rule__Primary__Group_7__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2894:6: ( ( rule__Primary__Group_7__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2895:1: ( rule__Primary__Group_7__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getPrimaryAccess().getGroup_7()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2896:1: ( rule__Primary__Group_7__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2896:2: rule__Primary__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__Primary__Group_7__0_in_rule__Primary__Alternatives6313);
                    rule__Primary__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getPrimaryAccess().getGroup_7()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Alternatives"


    // $ANTLR start "rule__Type__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2906:1: rule__Type__Alternatives : ( ( ( rule__Type__Group_0__0 ) ) | ( ( rule__Type__Group_1__0 ) ) | ( ( rule__Type__Group_2__0 ) ) | ( ( rule__Type__Group_3__0 ) ) | ( ( rule__Type__Group_4__0 ) ) | ( ( rule__Type__Group_5__0 ) ) | ( ( rule__Type__Group_6__0 ) ) | ( ( rule__Type__Group_7__0 ) ) | ( ( rule__Type__Group_8__0 ) ) );
    public final void rule__Type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2910:1: ( ( ( rule__Type__Group_0__0 ) ) | ( ( rule__Type__Group_1__0 ) ) | ( ( rule__Type__Group_2__0 ) ) | ( ( rule__Type__Group_3__0 ) ) | ( ( rule__Type__Group_4__0 ) ) | ( ( rule__Type__Group_5__0 ) ) | ( ( rule__Type__Group_6__0 ) ) | ( ( rule__Type__Group_7__0 ) ) | ( ( rule__Type__Group_8__0 ) ) )
            int alt25=9;
            switch ( input.LA(1) ) {
            case 85:
                {
                alt25=1;
                }
                break;
            case 86:
                {
                alt25=2;
                }
                break;
            case 87:
                {
                alt25=3;
                }
                break;
            case 88:
                {
                alt25=4;
                }
                break;
            case 89:
                {
                alt25=5;
                }
                break;
            case 90:
                {
                alt25=6;
                }
                break;
            case 91:
                {
                alt25=7;
                }
                break;
            case 67:
                {
                alt25=8;
                }
                break;
            case 69:
                {
                alt25=9;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 25, 0, input);

                throw nvae;
            }

            switch (alt25) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2911:1: ( ( rule__Type__Group_0__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2911:1: ( ( rule__Type__Group_0__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2912:1: ( rule__Type__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_0()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2913:1: ( rule__Type__Group_0__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2913:2: rule__Type__Group_0__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_0__0_in_rule__Type__Alternatives6347);
                    rule__Type__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2917:6: ( ( rule__Type__Group_1__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2917:6: ( ( rule__Type__Group_1__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2918:1: ( rule__Type__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_1()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2919:1: ( rule__Type__Group_1__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2919:2: rule__Type__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_1__0_in_rule__Type__Alternatives6365);
                    rule__Type__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2923:6: ( ( rule__Type__Group_2__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2923:6: ( ( rule__Type__Group_2__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2924:1: ( rule__Type__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_2()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2925:1: ( rule__Type__Group_2__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2925:2: rule__Type__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_2__0_in_rule__Type__Alternatives6383);
                    rule__Type__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2929:6: ( ( rule__Type__Group_3__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2929:6: ( ( rule__Type__Group_3__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2930:1: ( rule__Type__Group_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_3()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2931:1: ( rule__Type__Group_3__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2931:2: rule__Type__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_3__0_in_rule__Type__Alternatives6401);
                    rule__Type__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2935:6: ( ( rule__Type__Group_4__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2935:6: ( ( rule__Type__Group_4__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2936:1: ( rule__Type__Group_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_4()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2937:1: ( rule__Type__Group_4__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2937:2: rule__Type__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_4__0_in_rule__Type__Alternatives6419);
                    rule__Type__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2941:6: ( ( rule__Type__Group_5__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2941:6: ( ( rule__Type__Group_5__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2942:1: ( rule__Type__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_5()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2943:1: ( rule__Type__Group_5__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2943:2: rule__Type__Group_5__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_5__0_in_rule__Type__Alternatives6437);
                    rule__Type__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2947:6: ( ( rule__Type__Group_6__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2947:6: ( ( rule__Type__Group_6__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2948:1: ( rule__Type__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_6()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2949:1: ( rule__Type__Group_6__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2949:2: rule__Type__Group_6__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_6__0_in_rule__Type__Alternatives6455);
                    rule__Type__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2953:6: ( ( rule__Type__Group_7__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2953:6: ( ( rule__Type__Group_7__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2954:1: ( rule__Type__Group_7__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_7()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2955:1: ( rule__Type__Group_7__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2955:2: rule__Type__Group_7__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_7__0_in_rule__Type__Alternatives6473);
                    rule__Type__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2959:6: ( ( rule__Type__Group_8__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2959:6: ( ( rule__Type__Group_8__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2960:1: ( rule__Type__Group_8__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeAccess().getGroup_8()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2961:1: ( rule__Type__Group_8__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2961:2: rule__Type__Group_8__0
                    {
                    pushFollow(FOLLOW_rule__Type__Group_8__0_in_rule__Type__Alternatives6491);
                    rule__Type__Group_8__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeAccess().getGroup_8()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Alternatives"


    // $ANTLR start "rule__Assignment__ValueAlternatives_2_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2970:1: rule__Assignment__ValueAlternatives_2_0 : ( ( ruleTerm ) | ( ruleListConstructor ) );
    public final void rule__Assignment__ValueAlternatives_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2974:1: ( ( ruleTerm ) | ( ruleListConstructor ) )
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( ((LA26_0>=RULE_STRING && LA26_0<=RULE_IDENTIFIER)||(LA26_0>=27 && LA26_0<=28)||LA26_0==42||LA26_0==50||LA26_0==66||LA26_0==69||(LA26_0>=85 && LA26_0<=91)) ) {
                alt26=1;
            }
            else if ( (LA26_0==67) ) {
                int LA26_2 = input.LA(2);

                if ( (LA26_2==42) ) {
                    alt26=2;
                }
                else if ( (LA26_2==RULE_IDENTIFIER) ) {
                    alt26=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 26, 2, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 26, 0, input);

                throw nvae;
            }
            switch (alt26) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2975:1: ( ruleTerm )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2975:1: ( ruleTerm )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2976:1: ruleTerm
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAssignmentAccess().getValueTermParserRuleCall_2_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleTerm_in_rule__Assignment__ValueAlternatives_2_06524);
                    ruleTerm();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAssignmentAccess().getValueTermParserRuleCall_2_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2981:6: ( ruleListConstructor )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2981:6: ( ruleListConstructor )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2982:1: ruleListConstructor
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getAssignmentAccess().getValueListConstructorParserRuleCall_2_0_1()); 
                    }
                    pushFollow(FOLLOW_ruleListConstructor_in_rule__Assignment__ValueAlternatives_2_06541);
                    ruleListConstructor();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getAssignmentAccess().getValueListConstructorParserRuleCall_2_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__ValueAlternatives_2_0"


    // $ANTLR start "rule__BeliefUpdate__TypeAlternatives_0_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2992:1: rule__BeliefUpdate__TypeAlternatives_0_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__BeliefUpdate__TypeAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2996:1: ( ( '+' ) | ( '-' ) )
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==27) ) {
                alt27=1;
            }
            else if ( (LA27_0==28) ) {
                alt27=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 27, 0, input);

                throw nvae;
            }
            switch (alt27) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2997:1: ( '+' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2997:1: ( '+' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2998:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBeliefUpdateAccess().getTypePlusSignKeyword_0_0_0()); 
                    }
                    match(input,27,FOLLOW_27_in_rule__BeliefUpdate__TypeAlternatives_0_06574); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBeliefUpdateAccess().getTypePlusSignKeyword_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3005:6: ( '-' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3005:6: ( '-' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3006:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getBeliefUpdateAccess().getTypeHyphenMinusKeyword_0_0_1()); 
                    }
                    match(input,28,FOLLOW_28_in_rule__BeliefUpdate__TypeAlternatives_0_06594); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getBeliefUpdateAccess().getTypeHyphenMinusKeyword_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__TypeAlternatives_0_0"


    // $ANTLR start "rule__EISSetup__IdAlternatives_2_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3018:1: rule__EISSetup__IdAlternatives_2_0 : ( ( RULE_STRING ) | ( RULE_INTEGER ) );
    public final void rule__EISSetup__IdAlternatives_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3022:1: ( ( RULE_STRING ) | ( RULE_INTEGER ) )
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( (LA28_0==RULE_STRING) ) {
                alt28=1;
            }
            else if ( (LA28_0==RULE_INTEGER) ) {
                alt28=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 28, 0, input);

                throw nvae;
            }
            switch (alt28) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3023:1: ( RULE_STRING )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3023:1: ( RULE_STRING )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3024:1: RULE_STRING
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getEISSetupAccess().getIdSTRINGTerminalRuleCall_2_0_0()); 
                    }
                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EISSetup__IdAlternatives_2_06628); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getEISSetupAccess().getIdSTRINGTerminalRuleCall_2_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3029:6: ( RULE_INTEGER )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3029:6: ( RULE_INTEGER )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3030:1: RULE_INTEGER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getEISSetupAccess().getIdINTEGERTerminalRuleCall_2_0_1()); 
                    }
                    match(input,RULE_INTEGER,FOLLOW_RULE_INTEGER_in_rule__EISSetup__IdAlternatives_2_06645); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getEISSetupAccess().getIdINTEGERTerminalRuleCall_2_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__IdAlternatives_2_0"


    // $ANTLR start "rule__EISSetup__JarAlternatives_3_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3040:1: rule__EISSetup__JarAlternatives_3_1_0 : ( ( RULE_STRING ) | ( RULE_INTEGER ) );
    public final void rule__EISSetup__JarAlternatives_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3044:1: ( ( RULE_STRING ) | ( RULE_INTEGER ) )
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==RULE_STRING) ) {
                alt29=1;
            }
            else if ( (LA29_0==RULE_INTEGER) ) {
                alt29=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 29, 0, input);

                throw nvae;
            }
            switch (alt29) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3045:1: ( RULE_STRING )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3045:1: ( RULE_STRING )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3046:1: RULE_STRING
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getEISSetupAccess().getJarSTRINGTerminalRuleCall_3_1_0_0()); 
                    }
                    match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EISSetup__JarAlternatives_3_1_06677); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getEISSetupAccess().getJarSTRINGTerminalRuleCall_3_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3051:6: ( RULE_INTEGER )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3051:6: ( RULE_INTEGER )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3052:1: RULE_INTEGER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getEISSetupAccess().getJarINTEGERTerminalRuleCall_3_1_0_1()); 
                    }
                    match(input,RULE_INTEGER,FOLLOW_RULE_INTEGER_in_rule__EISSetup__JarAlternatives_3_1_06694); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getEISSetupAccess().getJarINTEGERTerminalRuleCall_3_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__JarAlternatives_3_1_0"


    // $ANTLR start "rule__TRControl__ModeAlternatives_0_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3062:1: rule__TRControl__ModeAlternatives_0_0 : ( ( 'start' ) | ( 'stop' ) );
    public final void rule__TRControl__ModeAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3066:1: ( ( 'start' ) | ( 'stop' ) )
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==32) ) {
                alt30=1;
            }
            else if ( (LA30_0==33) ) {
                alt30=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 30, 0, input);

                throw nvae;
            }
            switch (alt30) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3067:1: ( 'start' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3067:1: ( 'start' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3068:1: 'start'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTRControlAccess().getModeStartKeyword_0_0_0()); 
                    }
                    match(input,32,FOLLOW_32_in_rule__TRControl__ModeAlternatives_0_06727); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTRControlAccess().getModeStartKeyword_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3075:6: ( 'stop' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3075:6: ( 'stop' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3076:1: 'stop'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTRControlAccess().getModeStopKeyword_0_0_1()); 
                    }
                    match(input,33,FOLLOW_33_in_rule__TRControl__ModeAlternatives_0_06747); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTRControlAccess().getModeStopKeyword_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__ModeAlternatives_0_0"


    // $ANTLR start "rule__TypeStep__ValueAlternatives_1_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3088:1: rule__TypeStep__ValueAlternatives_1_1_0 : ( ( ruleTerm ) | ( ruleListConstructor ) );
    public final void rule__TypeStep__ValueAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3092:1: ( ( ruleTerm ) | ( ruleListConstructor ) )
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( ((LA31_0>=RULE_STRING && LA31_0<=RULE_IDENTIFIER)||(LA31_0>=27 && LA31_0<=28)||LA31_0==42||LA31_0==50||LA31_0==66||LA31_0==69||(LA31_0>=85 && LA31_0<=91)) ) {
                alt31=1;
            }
            else if ( (LA31_0==67) ) {
                int LA31_2 = input.LA(2);

                if ( (LA31_2==42) ) {
                    alt31=2;
                }
                else if ( (LA31_2==RULE_IDENTIFIER) ) {
                    alt31=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 31, 2, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 31, 0, input);

                throw nvae;
            }
            switch (alt31) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3093:1: ( ruleTerm )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3093:1: ( ruleTerm )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3094:1: ruleTerm
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeStepAccess().getValueTermParserRuleCall_1_1_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleTerm_in_rule__TypeStep__ValueAlternatives_1_1_06781);
                    ruleTerm();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeStepAccess().getValueTermParserRuleCall_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3099:6: ( ruleListConstructor )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3099:6: ( ruleListConstructor )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3100:1: ruleListConstructor
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTypeStepAccess().getValueListConstructorParserRuleCall_1_1_0_1()); 
                    }
                    pushFollow(FOLLOW_ruleListConstructor_in_rule__TypeStep__ValueAlternatives_1_1_06798);
                    ruleListConstructor();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTypeStepAccess().getValueListConstructorParserRuleCall_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__ValueAlternatives_1_1_0"


    // $ANTLR start "rule__TeleoReactiveRule__OperationAlternatives_2_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3110:1: rule__TeleoReactiveRule__OperationAlternatives_2_0 : ( ( ruleLibraryAction ) | ( rulePredicate ) );
    public final void rule__TeleoReactiveRule__OperationAlternatives_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3114:1: ( ( ruleLibraryAction ) | ( rulePredicate ) )
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==RULE_IDENTIFIER) ) {
                int LA32_1 = input.LA(2);

                if ( (LA32_1==EOF||(LA32_1>=RULE_STRING && LA32_1<=RULE_IDENTIFIER)||(LA32_1>=27 && LA32_1<=28)||LA32_1==36||LA32_1==42||LA32_1==50||(LA32_1>=66 && LA32_1<=67)||LA32_1==69||LA32_1==79||(LA32_1>=84 && LA32_1<=91)) ) {
                    alt32=2;
                }
                else if ( (LA32_1==40) ) {
                    alt32=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 32, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }
            switch (alt32) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3115:1: ( ruleLibraryAction )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3115:1: ( ruleLibraryAction )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3116:1: ruleLibraryAction
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTeleoReactiveRuleAccess().getOperationLibraryActionParserRuleCall_2_0_0()); 
                    }
                    pushFollow(FOLLOW_ruleLibraryAction_in_rule__TeleoReactiveRule__OperationAlternatives_2_06830);
                    ruleLibraryAction();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTeleoReactiveRuleAccess().getOperationLibraryActionParserRuleCall_2_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3121:6: ( rulePredicate )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3121:6: ( rulePredicate )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3122:1: rulePredicate
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getTeleoReactiveRuleAccess().getOperationPredicateParserRuleCall_2_0_1()); 
                    }
                    pushFollow(FOLLOW_rulePredicate_in_rule__TeleoReactiveRule__OperationAlternatives_2_06847);
                    rulePredicate();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getTeleoReactiveRuleAccess().getOperationPredicateParserRuleCall_2_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__OperationAlternatives_2_0"


    // $ANTLR start "rule__Number__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3132:1: rule__Number__Alternatives : ( ( ruleUnsignedNumber ) | ( ( rule__Number__Group_1__0 ) ) );
    public final void rule__Number__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3136:1: ( ( ruleUnsignedNumber ) | ( ( rule__Number__Group_1__0 ) ) )
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( ((LA33_0>=RULE_INTEGER && LA33_0<=RULE_DOUBLE)) ) {
                alt33=1;
            }
            else if ( ((LA33_0>=27 && LA33_0<=28)) ) {
                alt33=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }
            switch (alt33) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3137:1: ( ruleUnsignedNumber )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3137:1: ( ruleUnsignedNumber )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3138:1: ruleUnsignedNumber
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getUnsignedNumberParserRuleCall_0()); 
                    }
                    pushFollow(FOLLOW_ruleUnsignedNumber_in_rule__Number__Alternatives6879);
                    ruleUnsignedNumber();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getUnsignedNumberParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3143:6: ( ( rule__Number__Group_1__0 ) )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3143:6: ( ( rule__Number__Group_1__0 ) )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3144:1: ( rule__Number__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getGroup_1()); 
                    }
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3145:1: ( rule__Number__Group_1__0 )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3145:2: rule__Number__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__Number__Group_1__0_in_rule__Number__Alternatives6896);
                    rule__Number__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Alternatives"


    // $ANTLR start "rule__UnsignedNumber__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3154:1: rule__UnsignedNumber__Alternatives : ( ( RULE_LONG ) | ( RULE_INTEGER ) | ( RULE_FLOAT ) | ( RULE_DOUBLE ) );
    public final void rule__UnsignedNumber__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3158:1: ( ( RULE_LONG ) | ( RULE_INTEGER ) | ( RULE_FLOAT ) | ( RULE_DOUBLE ) )
            int alt34=4;
            switch ( input.LA(1) ) {
            case RULE_LONG:
                {
                alt34=1;
                }
                break;
            case RULE_INTEGER:
                {
                alt34=2;
                }
                break;
            case RULE_FLOAT:
                {
                alt34=3;
                }
                break;
            case RULE_DOUBLE:
                {
                alt34=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 34, 0, input);

                throw nvae;
            }

            switch (alt34) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3159:1: ( RULE_LONG )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3159:1: ( RULE_LONG )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3160:1: RULE_LONG
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnsignedNumberAccess().getLONGTerminalRuleCall_0()); 
                    }
                    match(input,RULE_LONG,FOLLOW_RULE_LONG_in_rule__UnsignedNumber__Alternatives6929); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnsignedNumberAccess().getLONGTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3165:6: ( RULE_INTEGER )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3165:6: ( RULE_INTEGER )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3166:1: RULE_INTEGER
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnsignedNumberAccess().getINTEGERTerminalRuleCall_1()); 
                    }
                    match(input,RULE_INTEGER,FOLLOW_RULE_INTEGER_in_rule__UnsignedNumber__Alternatives6946); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnsignedNumberAccess().getINTEGERTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3171:6: ( RULE_FLOAT )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3171:6: ( RULE_FLOAT )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3172:1: RULE_FLOAT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnsignedNumberAccess().getFLOATTerminalRuleCall_2()); 
                    }
                    match(input,RULE_FLOAT,FOLLOW_RULE_FLOAT_in_rule__UnsignedNumber__Alternatives6963); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnsignedNumberAccess().getFLOATTerminalRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3177:6: ( RULE_DOUBLE )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3177:6: ( RULE_DOUBLE )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3178:1: RULE_DOUBLE
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getUnsignedNumberAccess().getDOUBLETerminalRuleCall_3()); 
                    }
                    match(input,RULE_DOUBLE,FOLLOW_RULE_DOUBLE_in_rule__UnsignedNumber__Alternatives6980); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getUnsignedNumberAccess().getDOUBLETerminalRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UnsignedNumber__Alternatives"


    // $ANTLR start "rule__Sign__Alternatives"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3188:1: rule__Sign__Alternatives : ( ( '+' ) | ( '-' ) );
    public final void rule__Sign__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3192:1: ( ( '+' ) | ( '-' ) )
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( (LA35_0==27) ) {
                alt35=1;
            }
            else if ( (LA35_0==28) ) {
                alt35=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 35, 0, input);

                throw nvae;
            }
            switch (alt35) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3193:1: ( '+' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3193:1: ( '+' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3194:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSignAccess().getPlusSignKeyword_0()); 
                    }
                    match(input,27,FOLLOW_27_in_rule__Sign__Alternatives7013); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSignAccess().getPlusSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3201:6: ( '-' )
                    {
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3201:6: ( '-' )
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3202:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getSignAccess().getHyphenMinusKeyword_1()); 
                    }
                    match(input,28,FOLLOW_28_in_rule__Sign__Alternatives7033); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getSignAccess().getHyphenMinusKeyword_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Sign__Alternatives"


    // $ANTLR start "rule__Astra__Group_0__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3216:1: rule__Astra__Group_0__0 : rule__Astra__Group_0__0__Impl rule__Astra__Group_0__1 ;
    public final void rule__Astra__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3220:1: ( rule__Astra__Group_0__0__Impl rule__Astra__Group_0__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3221:2: rule__Astra__Group_0__0__Impl rule__Astra__Group_0__1
            {
            pushFollow(FOLLOW_rule__Astra__Group_0__0__Impl_in_rule__Astra__Group_0__07065);
            rule__Astra__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Astra__Group_0__1_in_rule__Astra__Group_0__07068);
            rule__Astra__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__Group_0__0"


    // $ANTLR start "rule__Astra__Group_0__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3228:1: rule__Astra__Group_0__0__Impl : ( ( rule__Astra__LibrarysAssignment_0_0 )* ) ;
    public final void rule__Astra__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3232:1: ( ( ( rule__Astra__LibrarysAssignment_0_0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3233:1: ( ( rule__Astra__LibrarysAssignment_0_0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3233:1: ( ( rule__Astra__LibrarysAssignment_0_0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3234:1: ( rule__Astra__LibrarysAssignment_0_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAstraAccess().getLibrarysAssignment_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3235:1: ( rule__Astra__LibrarysAssignment_0_0 )*
            loop36:
            do {
                int alt36=2;
                int LA36_0 = input.LA(1);

                if ( (LA36_0==65) ) {
                    alt36=1;
                }


                switch (alt36) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3235:2: rule__Astra__LibrarysAssignment_0_0
            	    {
            	    pushFollow(FOLLOW_rule__Astra__LibrarysAssignment_0_0_in_rule__Astra__Group_0__0__Impl7095);
            	    rule__Astra__LibrarysAssignment_0_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop36;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAstraAccess().getLibrarysAssignment_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__Group_0__0__Impl"


    // $ANTLR start "rule__Astra__Group_0__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3245:1: rule__Astra__Group_0__1 : rule__Astra__Group_0__1__Impl ;
    public final void rule__Astra__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3249:1: ( rule__Astra__Group_0__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3250:2: rule__Astra__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Astra__Group_0__1__Impl_in_rule__Astra__Group_0__17126);
            rule__Astra__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__Group_0__1"


    // $ANTLR start "rule__Astra__Group_0__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3256:1: rule__Astra__Group_0__1__Impl : ( ( rule__Astra__AgentAssignment_0_1 ) ) ;
    public final void rule__Astra__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3260:1: ( ( ( rule__Astra__AgentAssignment_0_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3261:1: ( ( rule__Astra__AgentAssignment_0_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3261:1: ( ( rule__Astra__AgentAssignment_0_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3262:1: ( rule__Astra__AgentAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAstraAccess().getAgentAssignment_0_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3263:1: ( rule__Astra__AgentAssignment_0_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3263:2: rule__Astra__AgentAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Astra__AgentAssignment_0_1_in_rule__Astra__Group_0__1__Impl7153);
            rule__Astra__AgentAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAstraAccess().getAgentAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__Group_0__1__Impl"


    // $ANTLR start "rule__AgentUnitTest__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3277:1: rule__AgentUnitTest__Group__0 : rule__AgentUnitTest__Group__0__Impl rule__AgentUnitTest__Group__1 ;
    public final void rule__AgentUnitTest__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3281:1: ( rule__AgentUnitTest__Group__0__Impl rule__AgentUnitTest__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3282:2: rule__AgentUnitTest__Group__0__Impl rule__AgentUnitTest__Group__1
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__0__Impl_in_rule__AgentUnitTest__Group__07187);
            rule__AgentUnitTest__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__1_in_rule__AgentUnitTest__Group__07190);
            rule__AgentUnitTest__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__0"


    // $ANTLR start "rule__AgentUnitTest__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3289:1: rule__AgentUnitTest__Group__0__Impl : ( 'agentUnitTest' ) ;
    public final void rule__AgentUnitTest__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3293:1: ( ( 'agentUnitTest' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3294:1: ( 'agentUnitTest' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3294:1: ( 'agentUnitTest' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3295:1: 'agentUnitTest'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getAgentUnitTestKeyword_0()); 
            }
            match(input,34,FOLLOW_34_in_rule__AgentUnitTest__Group__0__Impl7218); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getAgentUnitTestKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__0__Impl"


    // $ANTLR start "rule__AgentUnitTest__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3308:1: rule__AgentUnitTest__Group__1 : rule__AgentUnitTest__Group__1__Impl rule__AgentUnitTest__Group__2 ;
    public final void rule__AgentUnitTest__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3312:1: ( rule__AgentUnitTest__Group__1__Impl rule__AgentUnitTest__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3313:2: rule__AgentUnitTest__Group__1__Impl rule__AgentUnitTest__Group__2
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__1__Impl_in_rule__AgentUnitTest__Group__17249);
            rule__AgentUnitTest__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__2_in_rule__AgentUnitTest__Group__17252);
            rule__AgentUnitTest__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__1"


    // $ANTLR start "rule__AgentUnitTest__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3320:1: rule__AgentUnitTest__Group__1__Impl : ( ( rule__AgentUnitTest__NameAssignment_1 ) ) ;
    public final void rule__AgentUnitTest__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3324:1: ( ( ( rule__AgentUnitTest__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3325:1: ( ( rule__AgentUnitTest__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3325:1: ( ( rule__AgentUnitTest__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3326:1: ( rule__AgentUnitTest__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3327:1: ( rule__AgentUnitTest__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3327:2: rule__AgentUnitTest__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__NameAssignment_1_in_rule__AgentUnitTest__Group__1__Impl7279);
            rule__AgentUnitTest__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__1__Impl"


    // $ANTLR start "rule__AgentUnitTest__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3337:1: rule__AgentUnitTest__Group__2 : rule__AgentUnitTest__Group__2__Impl rule__AgentUnitTest__Group__3 ;
    public final void rule__AgentUnitTest__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3341:1: ( rule__AgentUnitTest__Group__2__Impl rule__AgentUnitTest__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3342:2: rule__AgentUnitTest__Group__2__Impl rule__AgentUnitTest__Group__3
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__2__Impl_in_rule__AgentUnitTest__Group__27309);
            rule__AgentUnitTest__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__3_in_rule__AgentUnitTest__Group__27312);
            rule__AgentUnitTest__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__2"


    // $ANTLR start "rule__AgentUnitTest__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3349:1: rule__AgentUnitTest__Group__2__Impl : ( '{' ) ;
    public final void rule__AgentUnitTest__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3353:1: ( ( '{' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3354:1: ( '{' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3354:1: ( '{' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3355:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__AgentUnitTest__Group__2__Impl7340); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__2__Impl"


    // $ANTLR start "rule__AgentUnitTest__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3368:1: rule__AgentUnitTest__Group__3 : rule__AgentUnitTest__Group__3__Impl rule__AgentUnitTest__Group__4 ;
    public final void rule__AgentUnitTest__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3372:1: ( rule__AgentUnitTest__Group__3__Impl rule__AgentUnitTest__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3373:2: rule__AgentUnitTest__Group__3__Impl rule__AgentUnitTest__Group__4
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__3__Impl_in_rule__AgentUnitTest__Group__37371);
            rule__AgentUnitTest__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__4_in_rule__AgentUnitTest__Group__37374);
            rule__AgentUnitTest__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__3"


    // $ANTLR start "rule__AgentUnitTest__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3380:1: rule__AgentUnitTest__Group__3__Impl : ( ( rule__AgentUnitTest__TestAgentAssignment_3 )? ) ;
    public final void rule__AgentUnitTest__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3384:1: ( ( ( rule__AgentUnitTest__TestAgentAssignment_3 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3385:1: ( ( rule__AgentUnitTest__TestAgentAssignment_3 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3385:1: ( ( rule__AgentUnitTest__TestAgentAssignment_3 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3386:1: ( rule__AgentUnitTest__TestAgentAssignment_3 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getTestAgentAssignment_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3387:1: ( rule__AgentUnitTest__TestAgentAssignment_3 )?
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( (LA37_0==37) ) {
                alt37=1;
            }
            switch (alt37) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3387:2: rule__AgentUnitTest__TestAgentAssignment_3
                    {
                    pushFollow(FOLLOW_rule__AgentUnitTest__TestAgentAssignment_3_in_rule__AgentUnitTest__Group__3__Impl7401);
                    rule__AgentUnitTest__TestAgentAssignment_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getTestAgentAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__3__Impl"


    // $ANTLR start "rule__AgentUnitTest__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3397:1: rule__AgentUnitTest__Group__4 : rule__AgentUnitTest__Group__4__Impl rule__AgentUnitTest__Group__5 ;
    public final void rule__AgentUnitTest__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3401:1: ( rule__AgentUnitTest__Group__4__Impl rule__AgentUnitTest__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3402:2: rule__AgentUnitTest__Group__4__Impl rule__AgentUnitTest__Group__5
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__4__Impl_in_rule__AgentUnitTest__Group__47432);
            rule__AgentUnitTest__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__5_in_rule__AgentUnitTest__Group__47435);
            rule__AgentUnitTest__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__4"


    // $ANTLR start "rule__AgentUnitTest__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3409:1: rule__AgentUnitTest__Group__4__Impl : ( ( rule__AgentUnitTest__TestCasesAssignment_4 )* ) ;
    public final void rule__AgentUnitTest__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3413:1: ( ( ( rule__AgentUnitTest__TestCasesAssignment_4 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3414:1: ( ( rule__AgentUnitTest__TestCasesAssignment_4 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3414:1: ( ( rule__AgentUnitTest__TestCasesAssignment_4 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3415:1: ( rule__AgentUnitTest__TestCasesAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getTestCasesAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3416:1: ( rule__AgentUnitTest__TestCasesAssignment_4 )*
            loop38:
            do {
                int alt38=2;
                int LA38_0 = input.LA(1);

                if ( (LA38_0==39) ) {
                    alt38=1;
                }


                switch (alt38) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3416:2: rule__AgentUnitTest__TestCasesAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__AgentUnitTest__TestCasesAssignment_4_in_rule__AgentUnitTest__Group__4__Impl7462);
            	    rule__AgentUnitTest__TestCasesAssignment_4();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop38;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getTestCasesAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__4__Impl"


    // $ANTLR start "rule__AgentUnitTest__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3426:1: rule__AgentUnitTest__Group__5 : rule__AgentUnitTest__Group__5__Impl ;
    public final void rule__AgentUnitTest__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3430:1: ( rule__AgentUnitTest__Group__5__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3431:2: rule__AgentUnitTest__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__AgentUnitTest__Group__5__Impl_in_rule__AgentUnitTest__Group__57493);
            rule__AgentUnitTest__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__5"


    // $ANTLR start "rule__AgentUnitTest__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3437:1: rule__AgentUnitTest__Group__5__Impl : ( '}' ) ;
    public final void rule__AgentUnitTest__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3441:1: ( ( '}' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3442:1: ( '}' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3442:1: ( '}' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3443:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,36,FOLLOW_36_in_rule__AgentUnitTest__Group__5__Impl7521); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getRightCurlyBracketKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__Group__5__Impl"


    // $ANTLR start "rule__TestAgent__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3468:1: rule__TestAgent__Group__0 : rule__TestAgent__Group__0__Impl rule__TestAgent__Group__1 ;
    public final void rule__TestAgent__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3472:1: ( rule__TestAgent__Group__0__Impl rule__TestAgent__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3473:2: rule__TestAgent__Group__0__Impl rule__TestAgent__Group__1
            {
            pushFollow(FOLLOW_rule__TestAgent__Group__0__Impl_in_rule__TestAgent__Group__07564);
            rule__TestAgent__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgent__Group__1_in_rule__TestAgent__Group__07567);
            rule__TestAgent__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__Group__0"


    // $ANTLR start "rule__TestAgent__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3480:1: rule__TestAgent__Group__0__Impl : ( 'testagent' ) ;
    public final void rule__TestAgent__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3484:1: ( ( 'testagent' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3485:1: ( 'testagent' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3485:1: ( 'testagent' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3486:1: 'testagent'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentAccess().getTestagentKeyword_0()); 
            }
            match(input,37,FOLLOW_37_in_rule__TestAgent__Group__0__Impl7595); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentAccess().getTestagentKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__Group__0__Impl"


    // $ANTLR start "rule__TestAgent__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3499:1: rule__TestAgent__Group__1 : rule__TestAgent__Group__1__Impl rule__TestAgent__Group__2 ;
    public final void rule__TestAgent__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3503:1: ( rule__TestAgent__Group__1__Impl rule__TestAgent__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3504:2: rule__TestAgent__Group__1__Impl rule__TestAgent__Group__2
            {
            pushFollow(FOLLOW_rule__TestAgent__Group__1__Impl_in_rule__TestAgent__Group__17626);
            rule__TestAgent__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgent__Group__2_in_rule__TestAgent__Group__17629);
            rule__TestAgent__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__Group__1"


    // $ANTLR start "rule__TestAgent__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3511:1: rule__TestAgent__Group__1__Impl : ( ( rule__TestAgent__NameAssignment_1 ) ) ;
    public final void rule__TestAgent__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3515:1: ( ( ( rule__TestAgent__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3516:1: ( ( rule__TestAgent__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3516:1: ( ( rule__TestAgent__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3517:1: ( rule__TestAgent__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3518:1: ( rule__TestAgent__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3518:2: rule__TestAgent__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestAgent__NameAssignment_1_in_rule__TestAgent__Group__1__Impl7656);
            rule__TestAgent__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__Group__1__Impl"


    // $ANTLR start "rule__TestAgent__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3528:1: rule__TestAgent__Group__2 : rule__TestAgent__Group__2__Impl ;
    public final void rule__TestAgent__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3532:1: ( rule__TestAgent__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3533:2: rule__TestAgent__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TestAgent__Group__2__Impl_in_rule__TestAgent__Group__27686);
            rule__TestAgent__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__Group__2"


    // $ANTLR start "rule__TestAgent__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3539:1: rule__TestAgent__Group__2__Impl : ( ';' ) ;
    public final void rule__TestAgent__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3543:1: ( ( ';' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3544:1: ( ';' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3544:1: ( ';' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3545:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentAccess().getSemicolonKeyword_2()); 
            }
            match(input,38,FOLLOW_38_in_rule__TestAgent__Group__2__Impl7714); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentAccess().getSemicolonKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__Group__2__Impl"


    // $ANTLR start "rule__TestCase__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3564:1: rule__TestCase__Group__0 : rule__TestCase__Group__0__Impl rule__TestCase__Group__1 ;
    public final void rule__TestCase__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3568:1: ( rule__TestCase__Group__0__Impl rule__TestCase__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3569:2: rule__TestCase__Group__0__Impl rule__TestCase__Group__1
            {
            pushFollow(FOLLOW_rule__TestCase__Group__0__Impl_in_rule__TestCase__Group__07751);
            rule__TestCase__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestCase__Group__1_in_rule__TestCase__Group__07754);
            rule__TestCase__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__0"


    // $ANTLR start "rule__TestCase__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3576:1: rule__TestCase__Group__0__Impl : ( 'testcase' ) ;
    public final void rule__TestCase__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3580:1: ( ( 'testcase' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3581:1: ( 'testcase' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3581:1: ( 'testcase' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3582:1: 'testcase'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getTestcaseKeyword_0()); 
            }
            match(input,39,FOLLOW_39_in_rule__TestCase__Group__0__Impl7782); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getTestcaseKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__0__Impl"


    // $ANTLR start "rule__TestCase__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3595:1: rule__TestCase__Group__1 : rule__TestCase__Group__1__Impl rule__TestCase__Group__2 ;
    public final void rule__TestCase__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3599:1: ( rule__TestCase__Group__1__Impl rule__TestCase__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3600:2: rule__TestCase__Group__1__Impl rule__TestCase__Group__2
            {
            pushFollow(FOLLOW_rule__TestCase__Group__1__Impl_in_rule__TestCase__Group__17813);
            rule__TestCase__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestCase__Group__2_in_rule__TestCase__Group__17816);
            rule__TestCase__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__1"


    // $ANTLR start "rule__TestCase__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3607:1: rule__TestCase__Group__1__Impl : ( ( rule__TestCase__NameAssignment_1 ) ) ;
    public final void rule__TestCase__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3611:1: ( ( ( rule__TestCase__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3612:1: ( ( rule__TestCase__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3612:1: ( ( rule__TestCase__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3613:1: ( rule__TestCase__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3614:1: ( rule__TestCase__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3614:2: rule__TestCase__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestCase__NameAssignment_1_in_rule__TestCase__Group__1__Impl7843);
            rule__TestCase__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__1__Impl"


    // $ANTLR start "rule__TestCase__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3624:1: rule__TestCase__Group__2 : rule__TestCase__Group__2__Impl rule__TestCase__Group__3 ;
    public final void rule__TestCase__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3628:1: ( rule__TestCase__Group__2__Impl rule__TestCase__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3629:2: rule__TestCase__Group__2__Impl rule__TestCase__Group__3
            {
            pushFollow(FOLLOW_rule__TestCase__Group__2__Impl_in_rule__TestCase__Group__27873);
            rule__TestCase__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestCase__Group__3_in_rule__TestCase__Group__27876);
            rule__TestCase__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__2"


    // $ANTLR start "rule__TestCase__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3636:1: rule__TestCase__Group__2__Impl : ( '{' ) ;
    public final void rule__TestCase__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3640:1: ( ( '{' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3641:1: ( '{' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3641:1: ( '{' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3642:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,35,FOLLOW_35_in_rule__TestCase__Group__2__Impl7904); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__2__Impl"


    // $ANTLR start "rule__TestCase__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3655:1: rule__TestCase__Group__3 : rule__TestCase__Group__3__Impl rule__TestCase__Group__4 ;
    public final void rule__TestCase__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3659:1: ( rule__TestCase__Group__3__Impl rule__TestCase__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3660:2: rule__TestCase__Group__3__Impl rule__TestCase__Group__4
            {
            pushFollow(FOLLOW_rule__TestCase__Group__3__Impl_in_rule__TestCase__Group__37935);
            rule__TestCase__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestCase__Group__4_in_rule__TestCase__Group__37938);
            rule__TestCase__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__3"


    // $ANTLR start "rule__TestCase__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3667:1: rule__TestCase__Group__3__Impl : ( ( rule__TestCase__TestStatementsAssignment_3 )* ) ;
    public final void rule__TestCase__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3671:1: ( ( ( rule__TestCase__TestStatementsAssignment_3 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3672:1: ( ( rule__TestCase__TestStatementsAssignment_3 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3672:1: ( ( rule__TestCase__TestStatementsAssignment_3 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3673:1: ( rule__TestCase__TestStatementsAssignment_3 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getTestStatementsAssignment_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3674:1: ( rule__TestCase__TestStatementsAssignment_3 )*
            loop39:
            do {
                int alt39=2;
                int LA39_0 = input.LA(1);

                if ( (LA39_0==RULE_IDENTIFIER||LA39_0==44||(LA39_0>=46 && LA39_0<=47)||LA39_0==49||(LA39_0>=52 && LA39_0<=56)) ) {
                    alt39=1;
                }


                switch (alt39) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3674:2: rule__TestCase__TestStatementsAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__TestCase__TestStatementsAssignment_3_in_rule__TestCase__Group__3__Impl7965);
            	    rule__TestCase__TestStatementsAssignment_3();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop39;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getTestStatementsAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__3__Impl"


    // $ANTLR start "rule__TestCase__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3684:1: rule__TestCase__Group__4 : rule__TestCase__Group__4__Impl ;
    public final void rule__TestCase__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3688:1: ( rule__TestCase__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3689:2: rule__TestCase__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__TestCase__Group__4__Impl_in_rule__TestCase__Group__47996);
            rule__TestCase__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__4"


    // $ANTLR start "rule__TestCase__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3695:1: rule__TestCase__Group__4__Impl : ( '}' ) ;
    public final void rule__TestCase__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3699:1: ( ( '}' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3700:1: ( '}' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3700:1: ( '}' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3701:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,36,FOLLOW_36_in_rule__TestCase__Group__4__Impl8024); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__Group__4__Impl"


    // $ANTLR start "rule__TestStatement__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3724:1: rule__TestStatement__Group__0 : rule__TestStatement__Group__0__Impl rule__TestStatement__Group__1 ;
    public final void rule__TestStatement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3728:1: ( rule__TestStatement__Group__0__Impl rule__TestStatement__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3729:2: rule__TestStatement__Group__0__Impl rule__TestStatement__Group__1
            {
            pushFollow(FOLLOW_rule__TestStatement__Group__0__Impl_in_rule__TestStatement__Group__08065);
            rule__TestStatement__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestStatement__Group__1_in_rule__TestStatement__Group__08068);
            rule__TestStatement__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestStatement__Group__0"


    // $ANTLR start "rule__TestStatement__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3736:1: rule__TestStatement__Group__0__Impl : ( ( rule__TestStatement__Alternatives_0 ) ) ;
    public final void rule__TestStatement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3740:1: ( ( ( rule__TestStatement__Alternatives_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3741:1: ( ( rule__TestStatement__Alternatives_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3741:1: ( ( rule__TestStatement__Alternatives_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3742:1: ( rule__TestStatement__Alternatives_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestStatementAccess().getAlternatives_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3743:1: ( rule__TestStatement__Alternatives_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3743:2: rule__TestStatement__Alternatives_0
            {
            pushFollow(FOLLOW_rule__TestStatement__Alternatives_0_in_rule__TestStatement__Group__0__Impl8095);
            rule__TestStatement__Alternatives_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestStatementAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestStatement__Group__0__Impl"


    // $ANTLR start "rule__TestStatement__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3753:1: rule__TestStatement__Group__1 : rule__TestStatement__Group__1__Impl ;
    public final void rule__TestStatement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3757:1: ( rule__TestStatement__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3758:2: rule__TestStatement__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__TestStatement__Group__1__Impl_in_rule__TestStatement__Group__18125);
            rule__TestStatement__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestStatement__Group__1"


    // $ANTLR start "rule__TestStatement__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3764:1: rule__TestStatement__Group__1__Impl : ( ';' ) ;
    public final void rule__TestStatement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3768:1: ( ( ';' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3769:1: ( ';' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3769:1: ( ';' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3770:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestStatementAccess().getSemicolonKeyword_1()); 
            }
            match(input,38,FOLLOW_38_in_rule__TestStatement__Group__1__Impl8153); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestStatementAccess().getSemicolonKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestStatement__Group__1__Impl"


    // $ANTLR start "rule__TestAgentRun__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3787:1: rule__TestAgentRun__Group__0 : rule__TestAgentRun__Group__0__Impl rule__TestAgentRun__Group__1 ;
    public final void rule__TestAgentRun__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3791:1: ( rule__TestAgentRun__Group__0__Impl rule__TestAgentRun__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3792:2: rule__TestAgentRun__Group__0__Impl rule__TestAgentRun__Group__1
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group__0__Impl_in_rule__TestAgentRun__Group__08188);
            rule__TestAgentRun__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRun__Group__1_in_rule__TestAgentRun__Group__08191);
            rule__TestAgentRun__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__0"


    // $ANTLR start "rule__TestAgentRun__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3799:1: rule__TestAgentRun__Group__0__Impl : ( ( rule__TestAgentRun__AgentAssignment_0 ) ) ;
    public final void rule__TestAgentRun__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3803:1: ( ( ( rule__TestAgentRun__AgentAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3804:1: ( ( rule__TestAgentRun__AgentAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3804:1: ( ( rule__TestAgentRun__AgentAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3805:1: ( rule__TestAgentRun__AgentAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getAgentAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3806:1: ( rule__TestAgentRun__AgentAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3806:2: rule__TestAgentRun__AgentAssignment_0
            {
            pushFollow(FOLLOW_rule__TestAgentRun__AgentAssignment_0_in_rule__TestAgentRun__Group__0__Impl8218);
            rule__TestAgentRun__AgentAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getAgentAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__0__Impl"


    // $ANTLR start "rule__TestAgentRun__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3816:1: rule__TestAgentRun__Group__1 : rule__TestAgentRun__Group__1__Impl rule__TestAgentRun__Group__2 ;
    public final void rule__TestAgentRun__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3820:1: ( rule__TestAgentRun__Group__1__Impl rule__TestAgentRun__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3821:2: rule__TestAgentRun__Group__1__Impl rule__TestAgentRun__Group__2
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group__1__Impl_in_rule__TestAgentRun__Group__18248);
            rule__TestAgentRun__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRun__Group__2_in_rule__TestAgentRun__Group__18251);
            rule__TestAgentRun__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__1"


    // $ANTLR start "rule__TestAgentRun__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3828:1: rule__TestAgentRun__Group__1__Impl : ( '.' ) ;
    public final void rule__TestAgentRun__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3832:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3833:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3833:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3834:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getFullStopKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__TestAgentRun__Group__1__Impl8279); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__1__Impl"


    // $ANTLR start "rule__TestAgentRun__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3847:1: rule__TestAgentRun__Group__2 : rule__TestAgentRun__Group__2__Impl rule__TestAgentRun__Group__3 ;
    public final void rule__TestAgentRun__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3851:1: ( rule__TestAgentRun__Group__2__Impl rule__TestAgentRun__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3852:2: rule__TestAgentRun__Group__2__Impl rule__TestAgentRun__Group__3
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group__2__Impl_in_rule__TestAgentRun__Group__28310);
            rule__TestAgentRun__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRun__Group__3_in_rule__TestAgentRun__Group__28313);
            rule__TestAgentRun__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__2"


    // $ANTLR start "rule__TestAgentRun__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3859:1: rule__TestAgentRun__Group__2__Impl : ( 'run' ) ;
    public final void rule__TestAgentRun__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3863:1: ( ( 'run' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3864:1: ( 'run' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3864:1: ( 'run' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3865:1: 'run'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getRunKeyword_2()); 
            }
            match(input,41,FOLLOW_41_in_rule__TestAgentRun__Group__2__Impl8341); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getRunKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__2__Impl"


    // $ANTLR start "rule__TestAgentRun__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3878:1: rule__TestAgentRun__Group__3 : rule__TestAgentRun__Group__3__Impl ;
    public final void rule__TestAgentRun__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3882:1: ( rule__TestAgentRun__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3883:2: rule__TestAgentRun__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group__3__Impl_in_rule__TestAgentRun__Group__38372);
            rule__TestAgentRun__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__3"


    // $ANTLR start "rule__TestAgentRun__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3889:1: rule__TestAgentRun__Group__3__Impl : ( ( rule__TestAgentRun__Group_3__0 )? ) ;
    public final void rule__TestAgentRun__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3893:1: ( ( ( rule__TestAgentRun__Group_3__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3894:1: ( ( rule__TestAgentRun__Group_3__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3894:1: ( ( rule__TestAgentRun__Group_3__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3895:1: ( rule__TestAgentRun__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3896:1: ( rule__TestAgentRun__Group_3__0 )?
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( (LA40_0==42) ) {
                alt40=1;
            }
            switch (alt40) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3896:2: rule__TestAgentRun__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__TestAgentRun__Group_3__0_in_rule__TestAgentRun__Group__3__Impl8399);
                    rule__TestAgentRun__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group__3__Impl"


    // $ANTLR start "rule__TestAgentRun__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3914:1: rule__TestAgentRun__Group_3__0 : rule__TestAgentRun__Group_3__0__Impl rule__TestAgentRun__Group_3__1 ;
    public final void rule__TestAgentRun__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3918:1: ( rule__TestAgentRun__Group_3__0__Impl rule__TestAgentRun__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3919:2: rule__TestAgentRun__Group_3__0__Impl rule__TestAgentRun__Group_3__1
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group_3__0__Impl_in_rule__TestAgentRun__Group_3__08438);
            rule__TestAgentRun__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRun__Group_3__1_in_rule__TestAgentRun__Group_3__08441);
            rule__TestAgentRun__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group_3__0"


    // $ANTLR start "rule__TestAgentRun__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3926:1: rule__TestAgentRun__Group_3__0__Impl : ( '(' ) ;
    public final void rule__TestAgentRun__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3930:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3931:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3931:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3932:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getLeftParenthesisKeyword_3_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__TestAgentRun__Group_3__0__Impl8469); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getLeftParenthesisKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group_3__0__Impl"


    // $ANTLR start "rule__TestAgentRun__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3945:1: rule__TestAgentRun__Group_3__1 : rule__TestAgentRun__Group_3__1__Impl rule__TestAgentRun__Group_3__2 ;
    public final void rule__TestAgentRun__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3949:1: ( rule__TestAgentRun__Group_3__1__Impl rule__TestAgentRun__Group_3__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3950:2: rule__TestAgentRun__Group_3__1__Impl rule__TestAgentRun__Group_3__2
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group_3__1__Impl_in_rule__TestAgentRun__Group_3__18500);
            rule__TestAgentRun__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRun__Group_3__2_in_rule__TestAgentRun__Group_3__18503);
            rule__TestAgentRun__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group_3__1"


    // $ANTLR start "rule__TestAgentRun__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3957:1: rule__TestAgentRun__Group_3__1__Impl : ( ( rule__TestAgentRun__ItemAssignment_3_1 ) ) ;
    public final void rule__TestAgentRun__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3961:1: ( ( ( rule__TestAgentRun__ItemAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3962:1: ( ( rule__TestAgentRun__ItemAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3962:1: ( ( rule__TestAgentRun__ItemAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3963:1: ( rule__TestAgentRun__ItemAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getItemAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3964:1: ( rule__TestAgentRun__ItemAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3964:2: rule__TestAgentRun__ItemAssignment_3_1
            {
            pushFollow(FOLLOW_rule__TestAgentRun__ItemAssignment_3_1_in_rule__TestAgentRun__Group_3__1__Impl8530);
            rule__TestAgentRun__ItemAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getItemAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group_3__1__Impl"


    // $ANTLR start "rule__TestAgentRun__Group_3__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3974:1: rule__TestAgentRun__Group_3__2 : rule__TestAgentRun__Group_3__2__Impl ;
    public final void rule__TestAgentRun__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3978:1: ( rule__TestAgentRun__Group_3__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3979:2: rule__TestAgentRun__Group_3__2__Impl
            {
            pushFollow(FOLLOW_rule__TestAgentRun__Group_3__2__Impl_in_rule__TestAgentRun__Group_3__28560);
            rule__TestAgentRun__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group_3__2"


    // $ANTLR start "rule__TestAgentRun__Group_3__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3985:1: rule__TestAgentRun__Group_3__2__Impl : ( ')' ) ;
    public final void rule__TestAgentRun__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3989:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3990:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3990:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:3991:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getRightParenthesisKeyword_3_2()); 
            }
            match(input,43,FOLLOW_43_in_rule__TestAgentRun__Group_3__2__Impl8588); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getRightParenthesisKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__Group_3__2__Impl"


    // $ANTLR start "rule__TestAgentRunItem__Group_0__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4010:1: rule__TestAgentRunItem__Group_0__0 : rule__TestAgentRunItem__Group_0__0__Impl rule__TestAgentRunItem__Group_0__1 ;
    public final void rule__TestAgentRunItem__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4014:1: ( rule__TestAgentRunItem__Group_0__0__Impl rule__TestAgentRunItem__Group_0__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4015:2: rule__TestAgentRunItem__Group_0__0__Impl rule__TestAgentRunItem__Group_0__1
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__Group_0__0__Impl_in_rule__TestAgentRunItem__Group_0__08625);
            rule__TestAgentRunItem__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRunItem__Group_0__1_in_rule__TestAgentRunItem__Group_0__08628);
            rule__TestAgentRunItem__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_0__0"


    // $ANTLR start "rule__TestAgentRunItem__Group_0__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4022:1: rule__TestAgentRunItem__Group_0__0__Impl : ( () ) ;
    public final void rule__TestAgentRunItem__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4026:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4027:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4027:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4028:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getINTEGERLiteralAction_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4029:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4031:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getINTEGERLiteralAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_0__0__Impl"


    // $ANTLR start "rule__TestAgentRunItem__Group_0__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4041:1: rule__TestAgentRunItem__Group_0__1 : rule__TestAgentRunItem__Group_0__1__Impl ;
    public final void rule__TestAgentRunItem__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4045:1: ( rule__TestAgentRunItem__Group_0__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4046:2: rule__TestAgentRunItem__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__Group_0__1__Impl_in_rule__TestAgentRunItem__Group_0__18686);
            rule__TestAgentRunItem__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_0__1"


    // $ANTLR start "rule__TestAgentRunItem__Group_0__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4052:1: rule__TestAgentRunItem__Group_0__1__Impl : ( ( rule__TestAgentRunItem__ValueAssignment_0_1 ) ) ;
    public final void rule__TestAgentRunItem__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4056:1: ( ( ( rule__TestAgentRunItem__ValueAssignment_0_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4057:1: ( ( rule__TestAgentRunItem__ValueAssignment_0_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4057:1: ( ( rule__TestAgentRunItem__ValueAssignment_0_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4058:1: ( rule__TestAgentRunItem__ValueAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getValueAssignment_0_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4059:1: ( rule__TestAgentRunItem__ValueAssignment_0_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4059:2: rule__TestAgentRunItem__ValueAssignment_0_1
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__ValueAssignment_0_1_in_rule__TestAgentRunItem__Group_0__1__Impl8713);
            rule__TestAgentRunItem__ValueAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getValueAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_0__1__Impl"


    // $ANTLR start "rule__TestAgentRunItem__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4073:1: rule__TestAgentRunItem__Group_1__0 : rule__TestAgentRunItem__Group_1__0__Impl rule__TestAgentRunItem__Group_1__1 ;
    public final void rule__TestAgentRunItem__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4077:1: ( rule__TestAgentRunItem__Group_1__0__Impl rule__TestAgentRunItem__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4078:2: rule__TestAgentRunItem__Group_1__0__Impl rule__TestAgentRunItem__Group_1__1
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__Group_1__0__Impl_in_rule__TestAgentRunItem__Group_1__08747);
            rule__TestAgentRunItem__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentRunItem__Group_1__1_in_rule__TestAgentRunItem__Group_1__08750);
            rule__TestAgentRunItem__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_1__0"


    // $ANTLR start "rule__TestAgentRunItem__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4085:1: rule__TestAgentRunItem__Group_1__0__Impl : ( () ) ;
    public final void rule__TestAgentRunItem__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4089:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4090:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4090:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4091:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getDefinitionLiteralAction_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4092:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4094:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getDefinitionLiteralAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_1__0__Impl"


    // $ANTLR start "rule__TestAgentRunItem__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4104:1: rule__TestAgentRunItem__Group_1__1 : rule__TestAgentRunItem__Group_1__1__Impl ;
    public final void rule__TestAgentRunItem__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4108:1: ( rule__TestAgentRunItem__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4109:2: rule__TestAgentRunItem__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__Group_1__1__Impl_in_rule__TestAgentRunItem__Group_1__18808);
            rule__TestAgentRunItem__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_1__1"


    // $ANTLR start "rule__TestAgentRunItem__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4115:1: rule__TestAgentRunItem__Group_1__1__Impl : ( ( rule__TestAgentRunItem__ValueAssignment_1_1 ) ) ;
    public final void rule__TestAgentRunItem__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4119:1: ( ( ( rule__TestAgentRunItem__ValueAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4120:1: ( ( rule__TestAgentRunItem__ValueAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4120:1: ( ( rule__TestAgentRunItem__ValueAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4121:1: ( rule__TestAgentRunItem__ValueAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getValueAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4122:1: ( rule__TestAgentRunItem__ValueAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4122:2: rule__TestAgentRunItem__ValueAssignment_1_1
            {
            pushFollow(FOLLOW_rule__TestAgentRunItem__ValueAssignment_1_1_in_rule__TestAgentRunItem__Group_1__1__Impl8835);
            rule__TestAgentRunItem__ValueAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getValueAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__Group_1__1__Impl"


    // $ANTLR start "rule__TestEquals__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4136:1: rule__TestEquals__Group__0 : rule__TestEquals__Group__0__Impl rule__TestEquals__Group__1 ;
    public final void rule__TestEquals__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4140:1: ( rule__TestEquals__Group__0__Impl rule__TestEquals__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4141:2: rule__TestEquals__Group__0__Impl rule__TestEquals__Group__1
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__0__Impl_in_rule__TestEquals__Group__08869);
            rule__TestEquals__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__1_in_rule__TestEquals__Group__08872);
            rule__TestEquals__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__0"


    // $ANTLR start "rule__TestEquals__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4148:1: rule__TestEquals__Group__0__Impl : ( 'assertEquals' ) ;
    public final void rule__TestEquals__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4152:1: ( ( 'assertEquals' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4153:1: ( 'assertEquals' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4153:1: ( 'assertEquals' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4154:1: 'assertEquals'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getAssertEqualsKeyword_0()); 
            }
            match(input,44,FOLLOW_44_in_rule__TestEquals__Group__0__Impl8900); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getAssertEqualsKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__0__Impl"


    // $ANTLR start "rule__TestEquals__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4167:1: rule__TestEquals__Group__1 : rule__TestEquals__Group__1__Impl rule__TestEquals__Group__2 ;
    public final void rule__TestEquals__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4171:1: ( rule__TestEquals__Group__1__Impl rule__TestEquals__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4172:2: rule__TestEquals__Group__1__Impl rule__TestEquals__Group__2
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__1__Impl_in_rule__TestEquals__Group__18931);
            rule__TestEquals__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__2_in_rule__TestEquals__Group__18934);
            rule__TestEquals__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__1"


    // $ANTLR start "rule__TestEquals__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4179:1: rule__TestEquals__Group__1__Impl : ( '(' ) ;
    public final void rule__TestEquals__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4183:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4184:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4184:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4185:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TestEquals__Group__1__Impl8962); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__1__Impl"


    // $ANTLR start "rule__TestEquals__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4198:1: rule__TestEquals__Group__2 : rule__TestEquals__Group__2__Impl rule__TestEquals__Group__3 ;
    public final void rule__TestEquals__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4202:1: ( rule__TestEquals__Group__2__Impl rule__TestEquals__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4203:2: rule__TestEquals__Group__2__Impl rule__TestEquals__Group__3
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__2__Impl_in_rule__TestEquals__Group__28993);
            rule__TestEquals__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__3_in_rule__TestEquals__Group__28996);
            rule__TestEquals__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__2"


    // $ANTLR start "rule__TestEquals__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4210:1: rule__TestEquals__Group__2__Impl : ( ( rule__TestEquals__ErrorAssignment_2 ) ) ;
    public final void rule__TestEquals__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4214:1: ( ( ( rule__TestEquals__ErrorAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4215:1: ( ( rule__TestEquals__ErrorAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4215:1: ( ( rule__TestEquals__ErrorAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4216:1: ( rule__TestEquals__ErrorAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getErrorAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4217:1: ( rule__TestEquals__ErrorAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4217:2: rule__TestEquals__ErrorAssignment_2
            {
            pushFollow(FOLLOW_rule__TestEquals__ErrorAssignment_2_in_rule__TestEquals__Group__2__Impl9023);
            rule__TestEquals__ErrorAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getErrorAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__2__Impl"


    // $ANTLR start "rule__TestEquals__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4227:1: rule__TestEquals__Group__3 : rule__TestEquals__Group__3__Impl rule__TestEquals__Group__4 ;
    public final void rule__TestEquals__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4231:1: ( rule__TestEquals__Group__3__Impl rule__TestEquals__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4232:2: rule__TestEquals__Group__3__Impl rule__TestEquals__Group__4
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__3__Impl_in_rule__TestEquals__Group__39053);
            rule__TestEquals__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__4_in_rule__TestEquals__Group__39056);
            rule__TestEquals__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__3"


    // $ANTLR start "rule__TestEquals__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4239:1: rule__TestEquals__Group__3__Impl : ( ',' ) ;
    public final void rule__TestEquals__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4243:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4244:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4244:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4245:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getCommaKeyword_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__TestEquals__Group__3__Impl9084); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__3__Impl"


    // $ANTLR start "rule__TestEquals__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4258:1: rule__TestEquals__Group__4 : rule__TestEquals__Group__4__Impl rule__TestEquals__Group__5 ;
    public final void rule__TestEquals__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4262:1: ( rule__TestEquals__Group__4__Impl rule__TestEquals__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4263:2: rule__TestEquals__Group__4__Impl rule__TestEquals__Group__5
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__4__Impl_in_rule__TestEquals__Group__49115);
            rule__TestEquals__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__5_in_rule__TestEquals__Group__49118);
            rule__TestEquals__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__4"


    // $ANTLR start "rule__TestEquals__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4270:1: rule__TestEquals__Group__4__Impl : ( ( rule__TestEquals__ExpectedsAssignment_4 ) ) ;
    public final void rule__TestEquals__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4274:1: ( ( ( rule__TestEquals__ExpectedsAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4275:1: ( ( rule__TestEquals__ExpectedsAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4275:1: ( ( rule__TestEquals__ExpectedsAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4276:1: ( rule__TestEquals__ExpectedsAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getExpectedsAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4277:1: ( rule__TestEquals__ExpectedsAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4277:2: rule__TestEquals__ExpectedsAssignment_4
            {
            pushFollow(FOLLOW_rule__TestEquals__ExpectedsAssignment_4_in_rule__TestEquals__Group__4__Impl9145);
            rule__TestEquals__ExpectedsAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getExpectedsAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__4__Impl"


    // $ANTLR start "rule__TestEquals__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4287:1: rule__TestEquals__Group__5 : rule__TestEquals__Group__5__Impl rule__TestEquals__Group__6 ;
    public final void rule__TestEquals__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4291:1: ( rule__TestEquals__Group__5__Impl rule__TestEquals__Group__6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4292:2: rule__TestEquals__Group__5__Impl rule__TestEquals__Group__6
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__5__Impl_in_rule__TestEquals__Group__59175);
            rule__TestEquals__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__6_in_rule__TestEquals__Group__59178);
            rule__TestEquals__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__5"


    // $ANTLR start "rule__TestEquals__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4299:1: rule__TestEquals__Group__5__Impl : ( ',' ) ;
    public final void rule__TestEquals__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4303:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4304:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4304:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4305:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getCommaKeyword_5()); 
            }
            match(input,45,FOLLOW_45_in_rule__TestEquals__Group__5__Impl9206); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getCommaKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__5__Impl"


    // $ANTLR start "rule__TestEquals__Group__6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4318:1: rule__TestEquals__Group__6 : rule__TestEquals__Group__6__Impl rule__TestEquals__Group__7 ;
    public final void rule__TestEquals__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4322:1: ( rule__TestEquals__Group__6__Impl rule__TestEquals__Group__7 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4323:2: rule__TestEquals__Group__6__Impl rule__TestEquals__Group__7
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__6__Impl_in_rule__TestEquals__Group__69237);
            rule__TestEquals__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEquals__Group__7_in_rule__TestEquals__Group__69240);
            rule__TestEquals__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__6"


    // $ANTLR start "rule__TestEquals__Group__6__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4330:1: rule__TestEquals__Group__6__Impl : ( ( rule__TestEquals__ActualsAssignment_6 ) ) ;
    public final void rule__TestEquals__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4334:1: ( ( ( rule__TestEquals__ActualsAssignment_6 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4335:1: ( ( rule__TestEquals__ActualsAssignment_6 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4335:1: ( ( rule__TestEquals__ActualsAssignment_6 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4336:1: ( rule__TestEquals__ActualsAssignment_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getActualsAssignment_6()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4337:1: ( rule__TestEquals__ActualsAssignment_6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4337:2: rule__TestEquals__ActualsAssignment_6
            {
            pushFollow(FOLLOW_rule__TestEquals__ActualsAssignment_6_in_rule__TestEquals__Group__6__Impl9267);
            rule__TestEquals__ActualsAssignment_6();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getActualsAssignment_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__6__Impl"


    // $ANTLR start "rule__TestEquals__Group__7"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4347:1: rule__TestEquals__Group__7 : rule__TestEquals__Group__7__Impl ;
    public final void rule__TestEquals__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4351:1: ( rule__TestEquals__Group__7__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4352:2: rule__TestEquals__Group__7__Impl
            {
            pushFollow(FOLLOW_rule__TestEquals__Group__7__Impl_in_rule__TestEquals__Group__79297);
            rule__TestEquals__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__7"


    // $ANTLR start "rule__TestEquals__Group__7__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4358:1: rule__TestEquals__Group__7__Impl : ( ')' ) ;
    public final void rule__TestEquals__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4362:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4363:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4363:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4364:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getRightParenthesisKeyword_7()); 
            }
            match(input,43,FOLLOW_43_in_rule__TestEquals__Group__7__Impl9325); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getRightParenthesisKeyword_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__Group__7__Impl"


    // $ANTLR start "rule__TestAgentProperity__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4393:1: rule__TestAgentProperity__Group__0 : rule__TestAgentProperity__Group__0__Impl rule__TestAgentProperity__Group__1 ;
    public final void rule__TestAgentProperity__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4397:1: ( rule__TestAgentProperity__Group__0__Impl rule__TestAgentProperity__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4398:2: rule__TestAgentProperity__Group__0__Impl rule__TestAgentProperity__Group__1
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__Group__0__Impl_in_rule__TestAgentProperity__Group__09372);
            rule__TestAgentProperity__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentProperity__Group__1_in_rule__TestAgentProperity__Group__09375);
            rule__TestAgentProperity__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__Group__0"


    // $ANTLR start "rule__TestAgentProperity__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4405:1: rule__TestAgentProperity__Group__0__Impl : ( ( rule__TestAgentProperity__AgentAssignment_0 ) ) ;
    public final void rule__TestAgentProperity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4409:1: ( ( ( rule__TestAgentProperity__AgentAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4410:1: ( ( rule__TestAgentProperity__AgentAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4410:1: ( ( rule__TestAgentProperity__AgentAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4411:1: ( rule__TestAgentProperity__AgentAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getAgentAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4412:1: ( rule__TestAgentProperity__AgentAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4412:2: rule__TestAgentProperity__AgentAssignment_0
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__AgentAssignment_0_in_rule__TestAgentProperity__Group__0__Impl9402);
            rule__TestAgentProperity__AgentAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getAgentAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__Group__0__Impl"


    // $ANTLR start "rule__TestAgentProperity__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4422:1: rule__TestAgentProperity__Group__1 : rule__TestAgentProperity__Group__1__Impl rule__TestAgentProperity__Group__2 ;
    public final void rule__TestAgentProperity__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4426:1: ( rule__TestAgentProperity__Group__1__Impl rule__TestAgentProperity__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4427:2: rule__TestAgentProperity__Group__1__Impl rule__TestAgentProperity__Group__2
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__Group__1__Impl_in_rule__TestAgentProperity__Group__19432);
            rule__TestAgentProperity__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestAgentProperity__Group__2_in_rule__TestAgentProperity__Group__19435);
            rule__TestAgentProperity__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__Group__1"


    // $ANTLR start "rule__TestAgentProperity__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4434:1: rule__TestAgentProperity__Group__1__Impl : ( '.' ) ;
    public final void rule__TestAgentProperity__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4438:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4439:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4439:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4440:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getFullStopKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__TestAgentProperity__Group__1__Impl9463); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__Group__1__Impl"


    // $ANTLR start "rule__TestAgentProperity__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4453:1: rule__TestAgentProperity__Group__2 : rule__TestAgentProperity__Group__2__Impl ;
    public final void rule__TestAgentProperity__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4457:1: ( rule__TestAgentProperity__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4458:2: rule__TestAgentProperity__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__Group__2__Impl_in_rule__TestAgentProperity__Group__29494);
            rule__TestAgentProperity__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__Group__2"


    // $ANTLR start "rule__TestAgentProperity__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4464:1: rule__TestAgentProperity__Group__2__Impl : ( ( rule__TestAgentProperity__ProperityAssignment_2 ) ) ;
    public final void rule__TestAgentProperity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4468:1: ( ( ( rule__TestAgentProperity__ProperityAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4469:1: ( ( rule__TestAgentProperity__ProperityAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4469:1: ( ( rule__TestAgentProperity__ProperityAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4470:1: ( rule__TestAgentProperity__ProperityAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getProperityAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4471:1: ( rule__TestAgentProperity__ProperityAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4471:2: rule__TestAgentProperity__ProperityAssignment_2
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__ProperityAssignment_2_in_rule__TestAgentProperity__Group__2__Impl9521);
            rule__TestAgentProperity__ProperityAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getProperityAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__Group__2__Impl"


    // $ANTLR start "rule__TestTrue__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4487:1: rule__TestTrue__Group__0 : rule__TestTrue__Group__0__Impl rule__TestTrue__Group__1 ;
    public final void rule__TestTrue__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4491:1: ( rule__TestTrue__Group__0__Impl rule__TestTrue__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4492:2: rule__TestTrue__Group__0__Impl rule__TestTrue__Group__1
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__0__Impl_in_rule__TestTrue__Group__09557);
            rule__TestTrue__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestTrue__Group__1_in_rule__TestTrue__Group__09560);
            rule__TestTrue__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__0"


    // $ANTLR start "rule__TestTrue__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4499:1: rule__TestTrue__Group__0__Impl : ( 'assertTrue' ) ;
    public final void rule__TestTrue__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4503:1: ( ( 'assertTrue' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4504:1: ( 'assertTrue' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4504:1: ( 'assertTrue' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4505:1: 'assertTrue'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getAssertTrueKeyword_0()); 
            }
            match(input,46,FOLLOW_46_in_rule__TestTrue__Group__0__Impl9588); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getAssertTrueKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__0__Impl"


    // $ANTLR start "rule__TestTrue__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4518:1: rule__TestTrue__Group__1 : rule__TestTrue__Group__1__Impl rule__TestTrue__Group__2 ;
    public final void rule__TestTrue__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4522:1: ( rule__TestTrue__Group__1__Impl rule__TestTrue__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4523:2: rule__TestTrue__Group__1__Impl rule__TestTrue__Group__2
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__1__Impl_in_rule__TestTrue__Group__19619);
            rule__TestTrue__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestTrue__Group__2_in_rule__TestTrue__Group__19622);
            rule__TestTrue__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__1"


    // $ANTLR start "rule__TestTrue__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4530:1: rule__TestTrue__Group__1__Impl : ( '(' ) ;
    public final void rule__TestTrue__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4534:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4535:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4535:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4536:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TestTrue__Group__1__Impl9650); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__1__Impl"


    // $ANTLR start "rule__TestTrue__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4549:1: rule__TestTrue__Group__2 : rule__TestTrue__Group__2__Impl rule__TestTrue__Group__3 ;
    public final void rule__TestTrue__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4553:1: ( rule__TestTrue__Group__2__Impl rule__TestTrue__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4554:2: rule__TestTrue__Group__2__Impl rule__TestTrue__Group__3
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__2__Impl_in_rule__TestTrue__Group__29681);
            rule__TestTrue__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestTrue__Group__3_in_rule__TestTrue__Group__29684);
            rule__TestTrue__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__2"


    // $ANTLR start "rule__TestTrue__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4561:1: rule__TestTrue__Group__2__Impl : ( ( rule__TestTrue__ErrorAssignment_2 ) ) ;
    public final void rule__TestTrue__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4565:1: ( ( ( rule__TestTrue__ErrorAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4566:1: ( ( rule__TestTrue__ErrorAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4566:1: ( ( rule__TestTrue__ErrorAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4567:1: ( rule__TestTrue__ErrorAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getErrorAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4568:1: ( rule__TestTrue__ErrorAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4568:2: rule__TestTrue__ErrorAssignment_2
            {
            pushFollow(FOLLOW_rule__TestTrue__ErrorAssignment_2_in_rule__TestTrue__Group__2__Impl9711);
            rule__TestTrue__ErrorAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getErrorAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__2__Impl"


    // $ANTLR start "rule__TestTrue__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4578:1: rule__TestTrue__Group__3 : rule__TestTrue__Group__3__Impl rule__TestTrue__Group__4 ;
    public final void rule__TestTrue__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4582:1: ( rule__TestTrue__Group__3__Impl rule__TestTrue__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4583:2: rule__TestTrue__Group__3__Impl rule__TestTrue__Group__4
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__3__Impl_in_rule__TestTrue__Group__39741);
            rule__TestTrue__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestTrue__Group__4_in_rule__TestTrue__Group__39744);
            rule__TestTrue__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__3"


    // $ANTLR start "rule__TestTrue__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4590:1: rule__TestTrue__Group__3__Impl : ( ',' ) ;
    public final void rule__TestTrue__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4594:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4595:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4595:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4596:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getCommaKeyword_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__TestTrue__Group__3__Impl9772); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__3__Impl"


    // $ANTLR start "rule__TestTrue__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4609:1: rule__TestTrue__Group__4 : rule__TestTrue__Group__4__Impl rule__TestTrue__Group__5 ;
    public final void rule__TestTrue__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4613:1: ( rule__TestTrue__Group__4__Impl rule__TestTrue__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4614:2: rule__TestTrue__Group__4__Impl rule__TestTrue__Group__5
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__4__Impl_in_rule__TestTrue__Group__49803);
            rule__TestTrue__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestTrue__Group__5_in_rule__TestTrue__Group__49806);
            rule__TestTrue__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__4"


    // $ANTLR start "rule__TestTrue__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4621:1: rule__TestTrue__Group__4__Impl : ( ( rule__TestTrue__ConditionAssignment_4 ) ) ;
    public final void rule__TestTrue__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4625:1: ( ( ( rule__TestTrue__ConditionAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4626:1: ( ( rule__TestTrue__ConditionAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4626:1: ( ( rule__TestTrue__ConditionAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4627:1: ( rule__TestTrue__ConditionAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getConditionAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4628:1: ( rule__TestTrue__ConditionAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4628:2: rule__TestTrue__ConditionAssignment_4
            {
            pushFollow(FOLLOW_rule__TestTrue__ConditionAssignment_4_in_rule__TestTrue__Group__4__Impl9833);
            rule__TestTrue__ConditionAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getConditionAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__4__Impl"


    // $ANTLR start "rule__TestTrue__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4638:1: rule__TestTrue__Group__5 : rule__TestTrue__Group__5__Impl ;
    public final void rule__TestTrue__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4642:1: ( rule__TestTrue__Group__5__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4643:2: rule__TestTrue__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__TestTrue__Group__5__Impl_in_rule__TestTrue__Group__59863);
            rule__TestTrue__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__5"


    // $ANTLR start "rule__TestTrue__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4649:1: rule__TestTrue__Group__5__Impl : ( ')' ) ;
    public final void rule__TestTrue__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4653:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4654:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4654:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4655:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,43,FOLLOW_43_in_rule__TestTrue__Group__5__Impl9891); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__Group__5__Impl"


    // $ANTLR start "rule__TestFalse__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4680:1: rule__TestFalse__Group__0 : rule__TestFalse__Group__0__Impl rule__TestFalse__Group__1 ;
    public final void rule__TestFalse__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4684:1: ( rule__TestFalse__Group__0__Impl rule__TestFalse__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4685:2: rule__TestFalse__Group__0__Impl rule__TestFalse__Group__1
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__0__Impl_in_rule__TestFalse__Group__09934);
            rule__TestFalse__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestFalse__Group__1_in_rule__TestFalse__Group__09937);
            rule__TestFalse__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__0"


    // $ANTLR start "rule__TestFalse__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4692:1: rule__TestFalse__Group__0__Impl : ( 'assertFalse' ) ;
    public final void rule__TestFalse__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4696:1: ( ( 'assertFalse' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4697:1: ( 'assertFalse' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4697:1: ( 'assertFalse' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4698:1: 'assertFalse'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getAssertFalseKeyword_0()); 
            }
            match(input,47,FOLLOW_47_in_rule__TestFalse__Group__0__Impl9965); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getAssertFalseKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__0__Impl"


    // $ANTLR start "rule__TestFalse__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4711:1: rule__TestFalse__Group__1 : rule__TestFalse__Group__1__Impl rule__TestFalse__Group__2 ;
    public final void rule__TestFalse__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4715:1: ( rule__TestFalse__Group__1__Impl rule__TestFalse__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4716:2: rule__TestFalse__Group__1__Impl rule__TestFalse__Group__2
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__1__Impl_in_rule__TestFalse__Group__19996);
            rule__TestFalse__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestFalse__Group__2_in_rule__TestFalse__Group__19999);
            rule__TestFalse__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__1"


    // $ANTLR start "rule__TestFalse__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4723:1: rule__TestFalse__Group__1__Impl : ( '(' ) ;
    public final void rule__TestFalse__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4727:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4728:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4728:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4729:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TestFalse__Group__1__Impl10027); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__1__Impl"


    // $ANTLR start "rule__TestFalse__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4742:1: rule__TestFalse__Group__2 : rule__TestFalse__Group__2__Impl rule__TestFalse__Group__3 ;
    public final void rule__TestFalse__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4746:1: ( rule__TestFalse__Group__2__Impl rule__TestFalse__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4747:2: rule__TestFalse__Group__2__Impl rule__TestFalse__Group__3
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__2__Impl_in_rule__TestFalse__Group__210058);
            rule__TestFalse__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestFalse__Group__3_in_rule__TestFalse__Group__210061);
            rule__TestFalse__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__2"


    // $ANTLR start "rule__TestFalse__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4754:1: rule__TestFalse__Group__2__Impl : ( ( rule__TestFalse__ErrorAssignment_2 ) ) ;
    public final void rule__TestFalse__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4758:1: ( ( ( rule__TestFalse__ErrorAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4759:1: ( ( rule__TestFalse__ErrorAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4759:1: ( ( rule__TestFalse__ErrorAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4760:1: ( rule__TestFalse__ErrorAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getErrorAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4761:1: ( rule__TestFalse__ErrorAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4761:2: rule__TestFalse__ErrorAssignment_2
            {
            pushFollow(FOLLOW_rule__TestFalse__ErrorAssignment_2_in_rule__TestFalse__Group__2__Impl10088);
            rule__TestFalse__ErrorAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getErrorAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__2__Impl"


    // $ANTLR start "rule__TestFalse__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4771:1: rule__TestFalse__Group__3 : rule__TestFalse__Group__3__Impl rule__TestFalse__Group__4 ;
    public final void rule__TestFalse__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4775:1: ( rule__TestFalse__Group__3__Impl rule__TestFalse__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4776:2: rule__TestFalse__Group__3__Impl rule__TestFalse__Group__4
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__3__Impl_in_rule__TestFalse__Group__310118);
            rule__TestFalse__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestFalse__Group__4_in_rule__TestFalse__Group__310121);
            rule__TestFalse__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__3"


    // $ANTLR start "rule__TestFalse__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4783:1: rule__TestFalse__Group__3__Impl : ( ',' ) ;
    public final void rule__TestFalse__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4787:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4788:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4788:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4789:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getCommaKeyword_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__TestFalse__Group__3__Impl10149); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__3__Impl"


    // $ANTLR start "rule__TestFalse__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4802:1: rule__TestFalse__Group__4 : rule__TestFalse__Group__4__Impl rule__TestFalse__Group__5 ;
    public final void rule__TestFalse__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4806:1: ( rule__TestFalse__Group__4__Impl rule__TestFalse__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4807:2: rule__TestFalse__Group__4__Impl rule__TestFalse__Group__5
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__4__Impl_in_rule__TestFalse__Group__410180);
            rule__TestFalse__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestFalse__Group__5_in_rule__TestFalse__Group__410183);
            rule__TestFalse__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__4"


    // $ANTLR start "rule__TestFalse__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4814:1: rule__TestFalse__Group__4__Impl : ( ( rule__TestFalse__ConditionAssignment_4 ) ) ;
    public final void rule__TestFalse__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4818:1: ( ( ( rule__TestFalse__ConditionAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4819:1: ( ( rule__TestFalse__ConditionAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4819:1: ( ( rule__TestFalse__ConditionAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4820:1: ( rule__TestFalse__ConditionAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getConditionAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4821:1: ( rule__TestFalse__ConditionAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4821:2: rule__TestFalse__ConditionAssignment_4
            {
            pushFollow(FOLLOW_rule__TestFalse__ConditionAssignment_4_in_rule__TestFalse__Group__4__Impl10210);
            rule__TestFalse__ConditionAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getConditionAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__4__Impl"


    // $ANTLR start "rule__TestFalse__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4831:1: rule__TestFalse__Group__5 : rule__TestFalse__Group__5__Impl ;
    public final void rule__TestFalse__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4835:1: ( rule__TestFalse__Group__5__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4836:2: rule__TestFalse__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__TestFalse__Group__5__Impl_in_rule__TestFalse__Group__510240);
            rule__TestFalse__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__5"


    // $ANTLR start "rule__TestFalse__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4842:1: rule__TestFalse__Group__5__Impl : ( ')' ) ;
    public final void rule__TestFalse__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4846:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4847:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4847:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4848:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,43,FOLLOW_43_in_rule__TestFalse__Group__5__Impl10268); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__Group__5__Impl"


    // $ANTLR start "rule__TestVerify__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4873:1: rule__TestVerify__Group__0 : rule__TestVerify__Group__0__Impl rule__TestVerify__Group__1 ;
    public final void rule__TestVerify__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4877:1: ( rule__TestVerify__Group__0__Impl rule__TestVerify__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4878:2: rule__TestVerify__Group__0__Impl rule__TestVerify__Group__1
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__0__Impl_in_rule__TestVerify__Group__010311);
            rule__TestVerify__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestVerify__Group__1_in_rule__TestVerify__Group__010314);
            rule__TestVerify__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__0"


    // $ANTLR start "rule__TestVerify__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4885:1: rule__TestVerify__Group__0__Impl : ( ( rule__TestVerify__AgentAssignment_0 ) ) ;
    public final void rule__TestVerify__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4889:1: ( ( ( rule__TestVerify__AgentAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4890:1: ( ( rule__TestVerify__AgentAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4890:1: ( ( rule__TestVerify__AgentAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4891:1: ( rule__TestVerify__AgentAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getAgentAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4892:1: ( rule__TestVerify__AgentAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4892:2: rule__TestVerify__AgentAssignment_0
            {
            pushFollow(FOLLOW_rule__TestVerify__AgentAssignment_0_in_rule__TestVerify__Group__0__Impl10341);
            rule__TestVerify__AgentAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getAgentAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__0__Impl"


    // $ANTLR start "rule__TestVerify__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4902:1: rule__TestVerify__Group__1 : rule__TestVerify__Group__1__Impl rule__TestVerify__Group__2 ;
    public final void rule__TestVerify__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4906:1: ( rule__TestVerify__Group__1__Impl rule__TestVerify__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4907:2: rule__TestVerify__Group__1__Impl rule__TestVerify__Group__2
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__1__Impl_in_rule__TestVerify__Group__110371);
            rule__TestVerify__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestVerify__Group__2_in_rule__TestVerify__Group__110374);
            rule__TestVerify__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__1"


    // $ANTLR start "rule__TestVerify__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4914:1: rule__TestVerify__Group__1__Impl : ( '.' ) ;
    public final void rule__TestVerify__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4918:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4919:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4919:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4920:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getFullStopKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__TestVerify__Group__1__Impl10402); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__1__Impl"


    // $ANTLR start "rule__TestVerify__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4933:1: rule__TestVerify__Group__2 : rule__TestVerify__Group__2__Impl rule__TestVerify__Group__3 ;
    public final void rule__TestVerify__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4937:1: ( rule__TestVerify__Group__2__Impl rule__TestVerify__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4938:2: rule__TestVerify__Group__2__Impl rule__TestVerify__Group__3
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__2__Impl_in_rule__TestVerify__Group__210433);
            rule__TestVerify__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestVerify__Group__3_in_rule__TestVerify__Group__210436);
            rule__TestVerify__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__2"


    // $ANTLR start "rule__TestVerify__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4945:1: rule__TestVerify__Group__2__Impl : ( 'verify' ) ;
    public final void rule__TestVerify__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4949:1: ( ( 'verify' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4950:1: ( 'verify' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4950:1: ( 'verify' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4951:1: 'verify'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getVerifyKeyword_2()); 
            }
            match(input,48,FOLLOW_48_in_rule__TestVerify__Group__2__Impl10464); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getVerifyKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__2__Impl"


    // $ANTLR start "rule__TestVerify__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4964:1: rule__TestVerify__Group__3 : rule__TestVerify__Group__3__Impl rule__TestVerify__Group__4 ;
    public final void rule__TestVerify__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4968:1: ( rule__TestVerify__Group__3__Impl rule__TestVerify__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4969:2: rule__TestVerify__Group__3__Impl rule__TestVerify__Group__4
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__3__Impl_in_rule__TestVerify__Group__310495);
            rule__TestVerify__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestVerify__Group__4_in_rule__TestVerify__Group__310498);
            rule__TestVerify__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__3"


    // $ANTLR start "rule__TestVerify__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4976:1: rule__TestVerify__Group__3__Impl : ( '(' ) ;
    public final void rule__TestVerify__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4980:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4981:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4981:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4982:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getLeftParenthesisKeyword_3()); 
            }
            match(input,42,FOLLOW_42_in_rule__TestVerify__Group__3__Impl10526); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getLeftParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__3__Impl"


    // $ANTLR start "rule__TestVerify__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4995:1: rule__TestVerify__Group__4 : rule__TestVerify__Group__4__Impl rule__TestVerify__Group__5 ;
    public final void rule__TestVerify__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:4999:1: ( rule__TestVerify__Group__4__Impl rule__TestVerify__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5000:2: rule__TestVerify__Group__4__Impl rule__TestVerify__Group__5
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__4__Impl_in_rule__TestVerify__Group__410557);
            rule__TestVerify__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestVerify__Group__5_in_rule__TestVerify__Group__410560);
            rule__TestVerify__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__4"


    // $ANTLR start "rule__TestVerify__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5007:1: rule__TestVerify__Group__4__Impl : ( ( rule__TestVerify__ItemAssignment_4 ) ) ;
    public final void rule__TestVerify__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5011:1: ( ( ( rule__TestVerify__ItemAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5012:1: ( ( rule__TestVerify__ItemAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5012:1: ( ( rule__TestVerify__ItemAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5013:1: ( rule__TestVerify__ItemAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getItemAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5014:1: ( rule__TestVerify__ItemAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5014:2: rule__TestVerify__ItemAssignment_4
            {
            pushFollow(FOLLOW_rule__TestVerify__ItemAssignment_4_in_rule__TestVerify__Group__4__Impl10587);
            rule__TestVerify__ItemAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getItemAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__4__Impl"


    // $ANTLR start "rule__TestVerify__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5024:1: rule__TestVerify__Group__5 : rule__TestVerify__Group__5__Impl ;
    public final void rule__TestVerify__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5028:1: ( rule__TestVerify__Group__5__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5029:2: rule__TestVerify__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__TestVerify__Group__5__Impl_in_rule__TestVerify__Group__510617);
            rule__TestVerify__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__5"


    // $ANTLR start "rule__TestVerify__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5035:1: rule__TestVerify__Group__5__Impl : ( ')' ) ;
    public final void rule__TestVerify__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5039:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5040:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5040:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5041:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,43,FOLLOW_43_in_rule__TestVerify__Group__5__Impl10645); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__Group__5__Impl"


    // $ANTLR start "rule__TestBeliefs__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5066:1: rule__TestBeliefs__Group__0 : rule__TestBeliefs__Group__0__Impl rule__TestBeliefs__Group__1 ;
    public final void rule__TestBeliefs__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5070:1: ( rule__TestBeliefs__Group__0__Impl rule__TestBeliefs__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5071:2: rule__TestBeliefs__Group__0__Impl rule__TestBeliefs__Group__1
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group__0__Impl_in_rule__TestBeliefs__Group__010688);
            rule__TestBeliefs__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group__1_in_rule__TestBeliefs__Group__010691);
            rule__TestBeliefs__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__0"


    // $ANTLR start "rule__TestBeliefs__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5078:1: rule__TestBeliefs__Group__0__Impl : ( () ) ;
    public final void rule__TestBeliefs__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5082:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5083:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5083:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5084:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getTestBeliefsAction_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5085:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5087:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getTestBeliefsAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__0__Impl"


    // $ANTLR start "rule__TestBeliefs__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5097:1: rule__TestBeliefs__Group__1 : rule__TestBeliefs__Group__1__Impl rule__TestBeliefs__Group__2 ;
    public final void rule__TestBeliefs__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5101:1: ( rule__TestBeliefs__Group__1__Impl rule__TestBeliefs__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5102:2: rule__TestBeliefs__Group__1__Impl rule__TestBeliefs__Group__2
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group__1__Impl_in_rule__TestBeliefs__Group__110749);
            rule__TestBeliefs__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group__2_in_rule__TestBeliefs__Group__110752);
            rule__TestBeliefs__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__1"


    // $ANTLR start "rule__TestBeliefs__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5109:1: rule__TestBeliefs__Group__1__Impl : ( 'beliefs' ) ;
    public final void rule__TestBeliefs__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5113:1: ( ( 'beliefs' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5114:1: ( 'beliefs' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5114:1: ( 'beliefs' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5115:1: 'beliefs'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getBeliefsKeyword_1()); 
            }
            match(input,49,FOLLOW_49_in_rule__TestBeliefs__Group__1__Impl10780); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getBeliefsKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__1__Impl"


    // $ANTLR start "rule__TestBeliefs__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5128:1: rule__TestBeliefs__Group__2 : rule__TestBeliefs__Group__2__Impl rule__TestBeliefs__Group__3 ;
    public final void rule__TestBeliefs__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5132:1: ( rule__TestBeliefs__Group__2__Impl rule__TestBeliefs__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5133:2: rule__TestBeliefs__Group__2__Impl rule__TestBeliefs__Group__3
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group__2__Impl_in_rule__TestBeliefs__Group__210811);
            rule__TestBeliefs__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group__3_in_rule__TestBeliefs__Group__210814);
            rule__TestBeliefs__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__2"


    // $ANTLR start "rule__TestBeliefs__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5140:1: rule__TestBeliefs__Group__2__Impl : ( ( rule__TestBeliefs__NameAssignment_2 ) ) ;
    public final void rule__TestBeliefs__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5144:1: ( ( ( rule__TestBeliefs__NameAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5145:1: ( ( rule__TestBeliefs__NameAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5145:1: ( ( rule__TestBeliefs__NameAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5146:1: ( rule__TestBeliefs__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getNameAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5147:1: ( rule__TestBeliefs__NameAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5147:2: rule__TestBeliefs__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__TestBeliefs__NameAssignment_2_in_rule__TestBeliefs__Group__2__Impl10841);
            rule__TestBeliefs__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__2__Impl"


    // $ANTLR start "rule__TestBeliefs__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5157:1: rule__TestBeliefs__Group__3 : rule__TestBeliefs__Group__3__Impl ;
    public final void rule__TestBeliefs__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5161:1: ( rule__TestBeliefs__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5162:2: rule__TestBeliefs__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group__3__Impl_in_rule__TestBeliefs__Group__310871);
            rule__TestBeliefs__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__3"


    // $ANTLR start "rule__TestBeliefs__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5168:1: rule__TestBeliefs__Group__3__Impl : ( ( rule__TestBeliefs__Group_3__0 ) ) ;
    public final void rule__TestBeliefs__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5172:1: ( ( ( rule__TestBeliefs__Group_3__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5173:1: ( ( rule__TestBeliefs__Group_3__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5173:1: ( ( rule__TestBeliefs__Group_3__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5174:1: ( rule__TestBeliefs__Group_3__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5175:1: ( rule__TestBeliefs__Group_3__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5175:2: rule__TestBeliefs__Group_3__0
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3__0_in_rule__TestBeliefs__Group__3__Impl10898);
            rule__TestBeliefs__Group_3__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group__3__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5193:1: rule__TestBeliefs__Group_3__0 : rule__TestBeliefs__Group_3__0__Impl rule__TestBeliefs__Group_3__1 ;
    public final void rule__TestBeliefs__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5197:1: ( rule__TestBeliefs__Group_3__0__Impl rule__TestBeliefs__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5198:2: rule__TestBeliefs__Group_3__0__Impl rule__TestBeliefs__Group_3__1
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3__0__Impl_in_rule__TestBeliefs__Group_3__010936);
            rule__TestBeliefs__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3__1_in_rule__TestBeliefs__Group_3__010939);
            rule__TestBeliefs__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3__0"


    // $ANTLR start "rule__TestBeliefs__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5205:1: rule__TestBeliefs__Group_3__0__Impl : ( '[' ) ;
    public final void rule__TestBeliefs__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5209:1: ( ( '[' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5210:1: ( '[' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5210:1: ( '[' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5211:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getLeftSquareBracketKeyword_3_0()); 
            }
            match(input,50,FOLLOW_50_in_rule__TestBeliefs__Group_3__0__Impl10967); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getLeftSquareBracketKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3__0__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5224:1: rule__TestBeliefs__Group_3__1 : rule__TestBeliefs__Group_3__1__Impl rule__TestBeliefs__Group_3__2 ;
    public final void rule__TestBeliefs__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5228:1: ( rule__TestBeliefs__Group_3__1__Impl rule__TestBeliefs__Group_3__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5229:2: rule__TestBeliefs__Group_3__1__Impl rule__TestBeliefs__Group_3__2
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3__1__Impl_in_rule__TestBeliefs__Group_3__110998);
            rule__TestBeliefs__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3__2_in_rule__TestBeliefs__Group_3__111001);
            rule__TestBeliefs__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3__1"


    // $ANTLR start "rule__TestBeliefs__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5236:1: rule__TestBeliefs__Group_3__1__Impl : ( ( rule__TestBeliefs__Group_3_1__0 )? ) ;
    public final void rule__TestBeliefs__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5240:1: ( ( ( rule__TestBeliefs__Group_3_1__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5241:1: ( ( rule__TestBeliefs__Group_3_1__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5241:1: ( ( rule__TestBeliefs__Group_3_1__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5242:1: ( rule__TestBeliefs__Group_3_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getGroup_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5243:1: ( rule__TestBeliefs__Group_3_1__0 )?
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==RULE_IDENTIFIER) ) {
                alt41=1;
            }
            switch (alt41) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5243:2: rule__TestBeliefs__Group_3_1__0
                    {
                    pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1__0_in_rule__TestBeliefs__Group_3__1__Impl11028);
                    rule__TestBeliefs__Group_3_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getGroup_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3__1__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5253:1: rule__TestBeliefs__Group_3__2 : rule__TestBeliefs__Group_3__2__Impl ;
    public final void rule__TestBeliefs__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5257:1: ( rule__TestBeliefs__Group_3__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5258:2: rule__TestBeliefs__Group_3__2__Impl
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3__2__Impl_in_rule__TestBeliefs__Group_3__211059);
            rule__TestBeliefs__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3__2"


    // $ANTLR start "rule__TestBeliefs__Group_3__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5264:1: rule__TestBeliefs__Group_3__2__Impl : ( ']' ) ;
    public final void rule__TestBeliefs__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5268:1: ( ( ']' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5269:1: ( ']' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5269:1: ( ']' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5270:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getRightSquareBracketKeyword_3_2()); 
            }
            match(input,51,FOLLOW_51_in_rule__TestBeliefs__Group_3__2__Impl11087); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getRightSquareBracketKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3__2__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5289:1: rule__TestBeliefs__Group_3_1__0 : rule__TestBeliefs__Group_3_1__0__Impl rule__TestBeliefs__Group_3_1__1 ;
    public final void rule__TestBeliefs__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5293:1: ( rule__TestBeliefs__Group_3_1__0__Impl rule__TestBeliefs__Group_3_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5294:2: rule__TestBeliefs__Group_3_1__0__Impl rule__TestBeliefs__Group_3_1__1
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1__0__Impl_in_rule__TestBeliefs__Group_3_1__011124);
            rule__TestBeliefs__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1__1_in_rule__TestBeliefs__Group_3_1__011127);
            rule__TestBeliefs__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1__0"


    // $ANTLR start "rule__TestBeliefs__Group_3_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5301:1: rule__TestBeliefs__Group_3_1__0__Impl : ( ( rule__TestBeliefs__BeliefsAssignment_3_1_0 ) ) ;
    public final void rule__TestBeliefs__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5305:1: ( ( ( rule__TestBeliefs__BeliefsAssignment_3_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5306:1: ( ( rule__TestBeliefs__BeliefsAssignment_3_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5306:1: ( ( rule__TestBeliefs__BeliefsAssignment_3_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5307:1: ( rule__TestBeliefs__BeliefsAssignment_3_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getBeliefsAssignment_3_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5308:1: ( rule__TestBeliefs__BeliefsAssignment_3_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5308:2: rule__TestBeliefs__BeliefsAssignment_3_1_0
            {
            pushFollow(FOLLOW_rule__TestBeliefs__BeliefsAssignment_3_1_0_in_rule__TestBeliefs__Group_3_1__0__Impl11154);
            rule__TestBeliefs__BeliefsAssignment_3_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getBeliefsAssignment_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1__0__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5318:1: rule__TestBeliefs__Group_3_1__1 : rule__TestBeliefs__Group_3_1__1__Impl ;
    public final void rule__TestBeliefs__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5322:1: ( rule__TestBeliefs__Group_3_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5323:2: rule__TestBeliefs__Group_3_1__1__Impl
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1__1__Impl_in_rule__TestBeliefs__Group_3_1__111184);
            rule__TestBeliefs__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1__1"


    // $ANTLR start "rule__TestBeliefs__Group_3_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5329:1: rule__TestBeliefs__Group_3_1__1__Impl : ( ( rule__TestBeliefs__Group_3_1_1__0 )* ) ;
    public final void rule__TestBeliefs__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5333:1: ( ( ( rule__TestBeliefs__Group_3_1_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5334:1: ( ( rule__TestBeliefs__Group_3_1_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5334:1: ( ( rule__TestBeliefs__Group_3_1_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5335:1: ( rule__TestBeliefs__Group_3_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getGroup_3_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5336:1: ( rule__TestBeliefs__Group_3_1_1__0 )*
            loop42:
            do {
                int alt42=2;
                int LA42_0 = input.LA(1);

                if ( (LA42_0==45) ) {
                    alt42=1;
                }


                switch (alt42) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5336:2: rule__TestBeliefs__Group_3_1_1__0
            	    {
            	    pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1_1__0_in_rule__TestBeliefs__Group_3_1__1__Impl11211);
            	    rule__TestBeliefs__Group_3_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop42;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getGroup_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1__1__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3_1_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5350:1: rule__TestBeliefs__Group_3_1_1__0 : rule__TestBeliefs__Group_3_1_1__0__Impl rule__TestBeliefs__Group_3_1_1__1 ;
    public final void rule__TestBeliefs__Group_3_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5354:1: ( rule__TestBeliefs__Group_3_1_1__0__Impl rule__TestBeliefs__Group_3_1_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5355:2: rule__TestBeliefs__Group_3_1_1__0__Impl rule__TestBeliefs__Group_3_1_1__1
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1_1__0__Impl_in_rule__TestBeliefs__Group_3_1_1__011246);
            rule__TestBeliefs__Group_3_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1_1__1_in_rule__TestBeliefs__Group_3_1_1__011249);
            rule__TestBeliefs__Group_3_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1_1__0"


    // $ANTLR start "rule__TestBeliefs__Group_3_1_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5362:1: rule__TestBeliefs__Group_3_1_1__0__Impl : ( ',' ) ;
    public final void rule__TestBeliefs__Group_3_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5366:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5367:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5367:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5368:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getCommaKeyword_3_1_1_0()); 
            }
            match(input,45,FOLLOW_45_in_rule__TestBeliefs__Group_3_1_1__0__Impl11277); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getCommaKeyword_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1_1__0__Impl"


    // $ANTLR start "rule__TestBeliefs__Group_3_1_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5381:1: rule__TestBeliefs__Group_3_1_1__1 : rule__TestBeliefs__Group_3_1_1__1__Impl ;
    public final void rule__TestBeliefs__Group_3_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5385:1: ( rule__TestBeliefs__Group_3_1_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5386:2: rule__TestBeliefs__Group_3_1_1__1__Impl
            {
            pushFollow(FOLLOW_rule__TestBeliefs__Group_3_1_1__1__Impl_in_rule__TestBeliefs__Group_3_1_1__111308);
            rule__TestBeliefs__Group_3_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1_1__1"


    // $ANTLR start "rule__TestBeliefs__Group_3_1_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5392:1: rule__TestBeliefs__Group_3_1_1__1__Impl : ( ( rule__TestBeliefs__BeliefsAssignment_3_1_1_1 ) ) ;
    public final void rule__TestBeliefs__Group_3_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5396:1: ( ( ( rule__TestBeliefs__BeliefsAssignment_3_1_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5397:1: ( ( rule__TestBeliefs__BeliefsAssignment_3_1_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5397:1: ( ( rule__TestBeliefs__BeliefsAssignment_3_1_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5398:1: ( rule__TestBeliefs__BeliefsAssignment_3_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getBeliefsAssignment_3_1_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5399:1: ( rule__TestBeliefs__BeliefsAssignment_3_1_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5399:2: rule__TestBeliefs__BeliefsAssignment_3_1_1_1
            {
            pushFollow(FOLLOW_rule__TestBeliefs__BeliefsAssignment_3_1_1_1_in_rule__TestBeliefs__Group_3_1_1__1__Impl11335);
            rule__TestBeliefs__BeliefsAssignment_3_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getBeliefsAssignment_3_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__Group_3_1_1__1__Impl"


    // $ANTLR start "rule__TestBelief__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5413:1: rule__TestBelief__Group__0 : rule__TestBelief__Group__0__Impl rule__TestBelief__Group__1 ;
    public final void rule__TestBelief__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5417:1: ( rule__TestBelief__Group__0__Impl rule__TestBelief__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5418:2: rule__TestBelief__Group__0__Impl rule__TestBelief__Group__1
            {
            pushFollow(FOLLOW_rule__TestBelief__Group__0__Impl_in_rule__TestBelief__Group__011369);
            rule__TestBelief__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBelief__Group__1_in_rule__TestBelief__Group__011372);
            rule__TestBelief__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__Group__0"


    // $ANTLR start "rule__TestBelief__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5425:1: rule__TestBelief__Group__0__Impl : ( 'belief' ) ;
    public final void rule__TestBelief__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5429:1: ( ( 'belief' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5430:1: ( 'belief' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5430:1: ( 'belief' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5431:1: 'belief'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefAccess().getBeliefKeyword_0()); 
            }
            match(input,52,FOLLOW_52_in_rule__TestBelief__Group__0__Impl11400); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefAccess().getBeliefKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__Group__0__Impl"


    // $ANTLR start "rule__TestBelief__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5444:1: rule__TestBelief__Group__1 : rule__TestBelief__Group__1__Impl rule__TestBelief__Group__2 ;
    public final void rule__TestBelief__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5448:1: ( rule__TestBelief__Group__1__Impl rule__TestBelief__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5449:2: rule__TestBelief__Group__1__Impl rule__TestBelief__Group__2
            {
            pushFollow(FOLLOW_rule__TestBelief__Group__1__Impl_in_rule__TestBelief__Group__111431);
            rule__TestBelief__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestBelief__Group__2_in_rule__TestBelief__Group__111434);
            rule__TestBelief__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__Group__1"


    // $ANTLR start "rule__TestBelief__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5456:1: rule__TestBelief__Group__1__Impl : ( ( rule__TestBelief__NameAssignment_1 ) ) ;
    public final void rule__TestBelief__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5460:1: ( ( ( rule__TestBelief__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5461:1: ( ( rule__TestBelief__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5461:1: ( ( rule__TestBelief__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5462:1: ( rule__TestBelief__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5463:1: ( rule__TestBelief__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5463:2: rule__TestBelief__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestBelief__NameAssignment_1_in_rule__TestBelief__Group__1__Impl11461);
            rule__TestBelief__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__Group__1__Impl"


    // $ANTLR start "rule__TestBelief__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5473:1: rule__TestBelief__Group__2 : rule__TestBelief__Group__2__Impl ;
    public final void rule__TestBelief__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5477:1: ( rule__TestBelief__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5478:2: rule__TestBelief__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TestBelief__Group__2__Impl_in_rule__TestBelief__Group__211491);
            rule__TestBelief__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__Group__2"


    // $ANTLR start "rule__TestBelief__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5484:1: rule__TestBelief__Group__2__Impl : ( ( rule__TestBelief__BeliefAssignment_2 ) ) ;
    public final void rule__TestBelief__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5488:1: ( ( ( rule__TestBelief__BeliefAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5489:1: ( ( rule__TestBelief__BeliefAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5489:1: ( ( rule__TestBelief__BeliefAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5490:1: ( rule__TestBelief__BeliefAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefAccess().getBeliefAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5491:1: ( rule__TestBelief__BeliefAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5491:2: rule__TestBelief__BeliefAssignment_2
            {
            pushFollow(FOLLOW_rule__TestBelief__BeliefAssignment_2_in_rule__TestBelief__Group__2__Impl11518);
            rule__TestBelief__BeliefAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefAccess().getBeliefAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__Group__2__Impl"


    // $ANTLR start "rule__TestPlan__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5507:1: rule__TestPlan__Group__0 : rule__TestPlan__Group__0__Impl rule__TestPlan__Group__1 ;
    public final void rule__TestPlan__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5511:1: ( rule__TestPlan__Group__0__Impl rule__TestPlan__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5512:2: rule__TestPlan__Group__0__Impl rule__TestPlan__Group__1
            {
            pushFollow(FOLLOW_rule__TestPlan__Group__0__Impl_in_rule__TestPlan__Group__011554);
            rule__TestPlan__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestPlan__Group__1_in_rule__TestPlan__Group__011557);
            rule__TestPlan__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__Group__0"


    // $ANTLR start "rule__TestPlan__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5519:1: rule__TestPlan__Group__0__Impl : ( 'plan' ) ;
    public final void rule__TestPlan__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5523:1: ( ( 'plan' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5524:1: ( 'plan' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5524:1: ( 'plan' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5525:1: 'plan'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanAccess().getPlanKeyword_0()); 
            }
            match(input,53,FOLLOW_53_in_rule__TestPlan__Group__0__Impl11585); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanAccess().getPlanKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__Group__0__Impl"


    // $ANTLR start "rule__TestPlan__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5538:1: rule__TestPlan__Group__1 : rule__TestPlan__Group__1__Impl rule__TestPlan__Group__2 ;
    public final void rule__TestPlan__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5542:1: ( rule__TestPlan__Group__1__Impl rule__TestPlan__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5543:2: rule__TestPlan__Group__1__Impl rule__TestPlan__Group__2
            {
            pushFollow(FOLLOW_rule__TestPlan__Group__1__Impl_in_rule__TestPlan__Group__111616);
            rule__TestPlan__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestPlan__Group__2_in_rule__TestPlan__Group__111619);
            rule__TestPlan__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__Group__1"


    // $ANTLR start "rule__TestPlan__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5550:1: rule__TestPlan__Group__1__Impl : ( ( rule__TestPlan__NameAssignment_1 ) ) ;
    public final void rule__TestPlan__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5554:1: ( ( ( rule__TestPlan__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5555:1: ( ( rule__TestPlan__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5555:1: ( ( rule__TestPlan__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5556:1: ( rule__TestPlan__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5557:1: ( rule__TestPlan__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5557:2: rule__TestPlan__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestPlan__NameAssignment_1_in_rule__TestPlan__Group__1__Impl11646);
            rule__TestPlan__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__Group__1__Impl"


    // $ANTLR start "rule__TestPlan__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5567:1: rule__TestPlan__Group__2 : rule__TestPlan__Group__2__Impl ;
    public final void rule__TestPlan__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5571:1: ( rule__TestPlan__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5572:2: rule__TestPlan__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TestPlan__Group__2__Impl_in_rule__TestPlan__Group__211676);
            rule__TestPlan__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__Group__2"


    // $ANTLR start "rule__TestPlan__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5578:1: rule__TestPlan__Group__2__Impl : ( ( rule__TestPlan__PlanAssignment_2 ) ) ;
    public final void rule__TestPlan__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5582:1: ( ( ( rule__TestPlan__PlanAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5583:1: ( ( rule__TestPlan__PlanAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5583:1: ( ( rule__TestPlan__PlanAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5584:1: ( rule__TestPlan__PlanAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanAccess().getPlanAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5585:1: ( rule__TestPlan__PlanAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5585:2: rule__TestPlan__PlanAssignment_2
            {
            pushFollow(FOLLOW_rule__TestPlan__PlanAssignment_2_in_rule__TestPlan__Group__2__Impl11703);
            rule__TestPlan__PlanAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanAccess().getPlanAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__Group__2__Impl"


    // $ANTLR start "rule__TestEvent__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5601:1: rule__TestEvent__Group__0 : rule__TestEvent__Group__0__Impl rule__TestEvent__Group__1 ;
    public final void rule__TestEvent__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5605:1: ( rule__TestEvent__Group__0__Impl rule__TestEvent__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5606:2: rule__TestEvent__Group__0__Impl rule__TestEvent__Group__1
            {
            pushFollow(FOLLOW_rule__TestEvent__Group__0__Impl_in_rule__TestEvent__Group__011739);
            rule__TestEvent__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEvent__Group__1_in_rule__TestEvent__Group__011742);
            rule__TestEvent__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__Group__0"


    // $ANTLR start "rule__TestEvent__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5613:1: rule__TestEvent__Group__0__Impl : ( 'event' ) ;
    public final void rule__TestEvent__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5617:1: ( ( 'event' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5618:1: ( 'event' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5618:1: ( 'event' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5619:1: 'event'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventAccess().getEventKeyword_0()); 
            }
            match(input,54,FOLLOW_54_in_rule__TestEvent__Group__0__Impl11770); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventAccess().getEventKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__Group__0__Impl"


    // $ANTLR start "rule__TestEvent__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5632:1: rule__TestEvent__Group__1 : rule__TestEvent__Group__1__Impl rule__TestEvent__Group__2 ;
    public final void rule__TestEvent__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5636:1: ( rule__TestEvent__Group__1__Impl rule__TestEvent__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5637:2: rule__TestEvent__Group__1__Impl rule__TestEvent__Group__2
            {
            pushFollow(FOLLOW_rule__TestEvent__Group__1__Impl_in_rule__TestEvent__Group__111801);
            rule__TestEvent__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestEvent__Group__2_in_rule__TestEvent__Group__111804);
            rule__TestEvent__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__Group__1"


    // $ANTLR start "rule__TestEvent__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5644:1: rule__TestEvent__Group__1__Impl : ( ( rule__TestEvent__NameAssignment_1 ) ) ;
    public final void rule__TestEvent__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5648:1: ( ( ( rule__TestEvent__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5649:1: ( ( rule__TestEvent__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5649:1: ( ( rule__TestEvent__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5650:1: ( rule__TestEvent__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5651:1: ( rule__TestEvent__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5651:2: rule__TestEvent__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestEvent__NameAssignment_1_in_rule__TestEvent__Group__1__Impl11831);
            rule__TestEvent__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__Group__1__Impl"


    // $ANTLR start "rule__TestEvent__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5661:1: rule__TestEvent__Group__2 : rule__TestEvent__Group__2__Impl ;
    public final void rule__TestEvent__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5665:1: ( rule__TestEvent__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5666:2: rule__TestEvent__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TestEvent__Group__2__Impl_in_rule__TestEvent__Group__211861);
            rule__TestEvent__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__Group__2"


    // $ANTLR start "rule__TestEvent__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5672:1: rule__TestEvent__Group__2__Impl : ( ( rule__TestEvent__EventAssignment_2 ) ) ;
    public final void rule__TestEvent__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5676:1: ( ( ( rule__TestEvent__EventAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5677:1: ( ( rule__TestEvent__EventAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5677:1: ( ( rule__TestEvent__EventAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5678:1: ( rule__TestEvent__EventAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventAccess().getEventAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5679:1: ( rule__TestEvent__EventAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5679:2: rule__TestEvent__EventAssignment_2
            {
            pushFollow(FOLLOW_rule__TestEvent__EventAssignment_2_in_rule__TestEvent__Group__2__Impl11888);
            rule__TestEvent__EventAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventAccess().getEventAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__Group__2__Impl"


    // $ANTLR start "rule__TestGoal__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5695:1: rule__TestGoal__Group__0 : rule__TestGoal__Group__0__Impl rule__TestGoal__Group__1 ;
    public final void rule__TestGoal__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5699:1: ( rule__TestGoal__Group__0__Impl rule__TestGoal__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5700:2: rule__TestGoal__Group__0__Impl rule__TestGoal__Group__1
            {
            pushFollow(FOLLOW_rule__TestGoal__Group__0__Impl_in_rule__TestGoal__Group__011924);
            rule__TestGoal__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestGoal__Group__1_in_rule__TestGoal__Group__011927);
            rule__TestGoal__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__Group__0"


    // $ANTLR start "rule__TestGoal__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5707:1: rule__TestGoal__Group__0__Impl : ( 'goal' ) ;
    public final void rule__TestGoal__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5711:1: ( ( 'goal' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5712:1: ( 'goal' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5712:1: ( 'goal' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5713:1: 'goal'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalAccess().getGoalKeyword_0()); 
            }
            match(input,55,FOLLOW_55_in_rule__TestGoal__Group__0__Impl11955); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalAccess().getGoalKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__Group__0__Impl"


    // $ANTLR start "rule__TestGoal__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5726:1: rule__TestGoal__Group__1 : rule__TestGoal__Group__1__Impl rule__TestGoal__Group__2 ;
    public final void rule__TestGoal__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5730:1: ( rule__TestGoal__Group__1__Impl rule__TestGoal__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5731:2: rule__TestGoal__Group__1__Impl rule__TestGoal__Group__2
            {
            pushFollow(FOLLOW_rule__TestGoal__Group__1__Impl_in_rule__TestGoal__Group__111986);
            rule__TestGoal__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestGoal__Group__2_in_rule__TestGoal__Group__111989);
            rule__TestGoal__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__Group__1"


    // $ANTLR start "rule__TestGoal__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5738:1: rule__TestGoal__Group__1__Impl : ( ( rule__TestGoal__NameAssignment_1 ) ) ;
    public final void rule__TestGoal__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5742:1: ( ( ( rule__TestGoal__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5743:1: ( ( rule__TestGoal__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5743:1: ( ( rule__TestGoal__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5744:1: ( rule__TestGoal__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5745:1: ( rule__TestGoal__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5745:2: rule__TestGoal__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestGoal__NameAssignment_1_in_rule__TestGoal__Group__1__Impl12016);
            rule__TestGoal__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__Group__1__Impl"


    // $ANTLR start "rule__TestGoal__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5755:1: rule__TestGoal__Group__2 : rule__TestGoal__Group__2__Impl ;
    public final void rule__TestGoal__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5759:1: ( rule__TestGoal__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5760:2: rule__TestGoal__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TestGoal__Group__2__Impl_in_rule__TestGoal__Group__212046);
            rule__TestGoal__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__Group__2"


    // $ANTLR start "rule__TestGoal__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5766:1: rule__TestGoal__Group__2__Impl : ( ( rule__TestGoal__GoalAssignment_2 ) ) ;
    public final void rule__TestGoal__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5770:1: ( ( ( rule__TestGoal__GoalAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5771:1: ( ( rule__TestGoal__GoalAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5771:1: ( ( rule__TestGoal__GoalAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5772:1: ( rule__TestGoal__GoalAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalAccess().getGoalAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5773:1: ( rule__TestGoal__GoalAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5773:2: rule__TestGoal__GoalAssignment_2
            {
            pushFollow(FOLLOW_rule__TestGoal__GoalAssignment_2_in_rule__TestGoal__Group__2__Impl12073);
            rule__TestGoal__GoalAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalAccess().getGoalAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__Group__2__Impl"


    // $ANTLR start "rule__TestRule__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5789:1: rule__TestRule__Group__0 : rule__TestRule__Group__0__Impl rule__TestRule__Group__1 ;
    public final void rule__TestRule__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5793:1: ( rule__TestRule__Group__0__Impl rule__TestRule__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5794:2: rule__TestRule__Group__0__Impl rule__TestRule__Group__1
            {
            pushFollow(FOLLOW_rule__TestRule__Group__0__Impl_in_rule__TestRule__Group__012109);
            rule__TestRule__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestRule__Group__1_in_rule__TestRule__Group__012112);
            rule__TestRule__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__0"


    // $ANTLR start "rule__TestRule__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5801:1: rule__TestRule__Group__0__Impl : ( 'rule' ) ;
    public final void rule__TestRule__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5805:1: ( ( 'rule' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5806:1: ( 'rule' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5806:1: ( 'rule' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5807:1: 'rule'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getRuleKeyword_0()); 
            }
            match(input,56,FOLLOW_56_in_rule__TestRule__Group__0__Impl12140); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getRuleKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__0__Impl"


    // $ANTLR start "rule__TestRule__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5820:1: rule__TestRule__Group__1 : rule__TestRule__Group__1__Impl rule__TestRule__Group__2 ;
    public final void rule__TestRule__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5824:1: ( rule__TestRule__Group__1__Impl rule__TestRule__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5825:2: rule__TestRule__Group__1__Impl rule__TestRule__Group__2
            {
            pushFollow(FOLLOW_rule__TestRule__Group__1__Impl_in_rule__TestRule__Group__112171);
            rule__TestRule__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestRule__Group__2_in_rule__TestRule__Group__112174);
            rule__TestRule__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__1"


    // $ANTLR start "rule__TestRule__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5832:1: rule__TestRule__Group__1__Impl : ( ( rule__TestRule__NameAssignment_1 ) ) ;
    public final void rule__TestRule__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5836:1: ( ( ( rule__TestRule__NameAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5837:1: ( ( rule__TestRule__NameAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5837:1: ( ( rule__TestRule__NameAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5838:1: ( rule__TestRule__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getNameAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5839:1: ( rule__TestRule__NameAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5839:2: rule__TestRule__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TestRule__NameAssignment_1_in_rule__TestRule__Group__1__Impl12201);
            rule__TestRule__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__1__Impl"


    // $ANTLR start "rule__TestRule__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5849:1: rule__TestRule__Group__2 : rule__TestRule__Group__2__Impl rule__TestRule__Group__3 ;
    public final void rule__TestRule__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5853:1: ( rule__TestRule__Group__2__Impl rule__TestRule__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5854:2: rule__TestRule__Group__2__Impl rule__TestRule__Group__3
            {
            pushFollow(FOLLOW_rule__TestRule__Group__2__Impl_in_rule__TestRule__Group__212231);
            rule__TestRule__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestRule__Group__3_in_rule__TestRule__Group__212234);
            rule__TestRule__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__2"


    // $ANTLR start "rule__TestRule__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5861:1: rule__TestRule__Group__2__Impl : ( ( rule__TestRule__EventAssignment_2 ) ) ;
    public final void rule__TestRule__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5865:1: ( ( ( rule__TestRule__EventAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5866:1: ( ( rule__TestRule__EventAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5866:1: ( ( rule__TestRule__EventAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5867:1: ( rule__TestRule__EventAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getEventAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5868:1: ( rule__TestRule__EventAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5868:2: rule__TestRule__EventAssignment_2
            {
            pushFollow(FOLLOW_rule__TestRule__EventAssignment_2_in_rule__TestRule__Group__2__Impl12261);
            rule__TestRule__EventAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getEventAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__2__Impl"


    // $ANTLR start "rule__TestRule__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5878:1: rule__TestRule__Group__3 : rule__TestRule__Group__3__Impl ;
    public final void rule__TestRule__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5882:1: ( rule__TestRule__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5883:2: rule__TestRule__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TestRule__Group__3__Impl_in_rule__TestRule__Group__312291);
            rule__TestRule__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__3"


    // $ANTLR start "rule__TestRule__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5889:1: rule__TestRule__Group__3__Impl : ( ( rule__TestRule__Group_3__0 )? ) ;
    public final void rule__TestRule__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5893:1: ( ( ( rule__TestRule__Group_3__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5894:1: ( ( rule__TestRule__Group_3__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5894:1: ( ( rule__TestRule__Group_3__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5895:1: ( rule__TestRule__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5896:1: ( rule__TestRule__Group_3__0 )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==57) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5896:2: rule__TestRule__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__TestRule__Group_3__0_in_rule__TestRule__Group__3__Impl12318);
                    rule__TestRule__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group__3__Impl"


    // $ANTLR start "rule__TestRule__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5914:1: rule__TestRule__Group_3__0 : rule__TestRule__Group_3__0__Impl rule__TestRule__Group_3__1 ;
    public final void rule__TestRule__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5918:1: ( rule__TestRule__Group_3__0__Impl rule__TestRule__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5919:2: rule__TestRule__Group_3__0__Impl rule__TestRule__Group_3__1
            {
            pushFollow(FOLLOW_rule__TestRule__Group_3__0__Impl_in_rule__TestRule__Group_3__012357);
            rule__TestRule__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TestRule__Group_3__1_in_rule__TestRule__Group_3__012360);
            rule__TestRule__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group_3__0"


    // $ANTLR start "rule__TestRule__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5926:1: rule__TestRule__Group_3__0__Impl : ( ':' ) ;
    public final void rule__TestRule__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5930:1: ( ( ':' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5931:1: ( ':' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5931:1: ( ':' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5932:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getColonKeyword_3_0()); 
            }
            match(input,57,FOLLOW_57_in_rule__TestRule__Group_3__0__Impl12388); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getColonKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group_3__0__Impl"


    // $ANTLR start "rule__TestRule__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5945:1: rule__TestRule__Group_3__1 : rule__TestRule__Group_3__1__Impl ;
    public final void rule__TestRule__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5949:1: ( rule__TestRule__Group_3__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5950:2: rule__TestRule__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__TestRule__Group_3__1__Impl_in_rule__TestRule__Group_3__112419);
            rule__TestRule__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group_3__1"


    // $ANTLR start "rule__TestRule__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5956:1: rule__TestRule__Group_3__1__Impl : ( ( rule__TestRule__ContextAssignment_3_1 ) ) ;
    public final void rule__TestRule__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5960:1: ( ( ( rule__TestRule__ContextAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5961:1: ( ( rule__TestRule__ContextAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5961:1: ( ( rule__TestRule__ContextAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5962:1: ( rule__TestRule__ContextAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getContextAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5963:1: ( rule__TestRule__ContextAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5963:2: rule__TestRule__ContextAssignment_3_1
            {
            pushFollow(FOLLOW_rule__TestRule__ContextAssignment_3_1_in_rule__TestRule__Group_3__1__Impl12446);
            rule__TestRule__ContextAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getContextAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__Group_3__1__Impl"


    // $ANTLR start "rule__Agent__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5977:1: rule__Agent__Group__0 : rule__Agent__Group__0__Impl rule__Agent__Group__1 ;
    public final void rule__Agent__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5981:1: ( rule__Agent__Group__0__Impl rule__Agent__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5982:2: rule__Agent__Group__0__Impl rule__Agent__Group__1
            {
            pushFollow(FOLLOW_rule__Agent__Group__0__Impl_in_rule__Agent__Group__012480);
            rule__Agent__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group__1_in_rule__Agent__Group__012483);
            rule__Agent__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__0"


    // $ANTLR start "rule__Agent__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5989:1: rule__Agent__Group__0__Impl : ( ( 'abstract' )? ) ;
    public final void rule__Agent__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5993:1: ( ( ( 'abstract' )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5994:1: ( ( 'abstract' )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5994:1: ( ( 'abstract' )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5995:1: ( 'abstract' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getAbstractKeyword_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5996:1: ( 'abstract' )?
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( (LA44_0==19) ) {
                alt44=1;
            }
            switch (alt44) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:5997:2: 'abstract'
                    {
                    match(input,19,FOLLOW_19_in_rule__Agent__Group__0__Impl12512); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getAbstractKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__0__Impl"


    // $ANTLR start "rule__Agent__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6008:1: rule__Agent__Group__1 : rule__Agent__Group__1__Impl rule__Agent__Group__2 ;
    public final void rule__Agent__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6012:1: ( rule__Agent__Group__1__Impl rule__Agent__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6013:2: rule__Agent__Group__1__Impl rule__Agent__Group__2
            {
            pushFollow(FOLLOW_rule__Agent__Group__1__Impl_in_rule__Agent__Group__112545);
            rule__Agent__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group__2_in_rule__Agent__Group__112548);
            rule__Agent__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__1"


    // $ANTLR start "rule__Agent__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6020:1: rule__Agent__Group__1__Impl : ( 'agent' ) ;
    public final void rule__Agent__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6024:1: ( ( 'agent' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6025:1: ( 'agent' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6025:1: ( 'agent' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6026:1: 'agent'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getAgentKeyword_1()); 
            }
            match(input,58,FOLLOW_58_in_rule__Agent__Group__1__Impl12576); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getAgentKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__1__Impl"


    // $ANTLR start "rule__Agent__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6039:1: rule__Agent__Group__2 : rule__Agent__Group__2__Impl rule__Agent__Group__3 ;
    public final void rule__Agent__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6043:1: ( rule__Agent__Group__2__Impl rule__Agent__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6044:2: rule__Agent__Group__2__Impl rule__Agent__Group__3
            {
            pushFollow(FOLLOW_rule__Agent__Group__2__Impl_in_rule__Agent__Group__212607);
            rule__Agent__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group__3_in_rule__Agent__Group__212610);
            rule__Agent__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__2"


    // $ANTLR start "rule__Agent__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6051:1: rule__Agent__Group__2__Impl : ( ( rule__Agent__NameAssignment_2 ) ) ;
    public final void rule__Agent__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6055:1: ( ( ( rule__Agent__NameAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6056:1: ( ( rule__Agent__NameAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6056:1: ( ( rule__Agent__NameAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6057:1: ( rule__Agent__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getNameAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6058:1: ( rule__Agent__NameAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6058:2: rule__Agent__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Agent__NameAssignment_2_in_rule__Agent__Group__2__Impl12637);
            rule__Agent__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__2__Impl"


    // $ANTLR start "rule__Agent__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6068:1: rule__Agent__Group__3 : rule__Agent__Group__3__Impl rule__Agent__Group__4 ;
    public final void rule__Agent__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6072:1: ( rule__Agent__Group__3__Impl rule__Agent__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6073:2: rule__Agent__Group__3__Impl rule__Agent__Group__4
            {
            pushFollow(FOLLOW_rule__Agent__Group__3__Impl_in_rule__Agent__Group__312667);
            rule__Agent__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group__4_in_rule__Agent__Group__312670);
            rule__Agent__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__3"


    // $ANTLR start "rule__Agent__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6080:1: rule__Agent__Group__3__Impl : ( ( rule__Agent__Group_3__0 )? ) ;
    public final void rule__Agent__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6084:1: ( ( ( rule__Agent__Group_3__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6085:1: ( ( rule__Agent__Group_3__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6085:1: ( ( rule__Agent__Group_3__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6086:1: ( rule__Agent__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6087:1: ( rule__Agent__Group_3__0 )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==59) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6087:2: rule__Agent__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Agent__Group_3__0_in_rule__Agent__Group__3__Impl12697);
                    rule__Agent__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__3__Impl"


    // $ANTLR start "rule__Agent__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6097:1: rule__Agent__Group__4 : rule__Agent__Group__4__Impl rule__Agent__Group__5 ;
    public final void rule__Agent__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6101:1: ( rule__Agent__Group__4__Impl rule__Agent__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6102:2: rule__Agent__Group__4__Impl rule__Agent__Group__5
            {
            pushFollow(FOLLOW_rule__Agent__Group__4__Impl_in_rule__Agent__Group__412728);
            rule__Agent__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group__5_in_rule__Agent__Group__412731);
            rule__Agent__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__4"


    // $ANTLR start "rule__Agent__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6109:1: rule__Agent__Group__4__Impl : ( '{' ) ;
    public final void rule__Agent__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6113:1: ( ( '{' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6114:1: ( '{' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6114:1: ( '{' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6115:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getLeftCurlyBracketKeyword_4()); 
            }
            match(input,35,FOLLOW_35_in_rule__Agent__Group__4__Impl12759); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getLeftCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__4__Impl"


    // $ANTLR start "rule__Agent__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6128:1: rule__Agent__Group__5 : rule__Agent__Group__5__Impl rule__Agent__Group__6 ;
    public final void rule__Agent__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6132:1: ( rule__Agent__Group__5__Impl rule__Agent__Group__6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6133:2: rule__Agent__Group__5__Impl rule__Agent__Group__6
            {
            pushFollow(FOLLOW_rule__Agent__Group__5__Impl_in_rule__Agent__Group__512790);
            rule__Agent__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group__6_in_rule__Agent__Group__512793);
            rule__Agent__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__5"


    // $ANTLR start "rule__Agent__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6140:1: rule__Agent__Group__5__Impl : ( ( rule__Agent__ElementsAssignment_5 )* ) ;
    public final void rule__Agent__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6144:1: ( ( ( rule__Agent__ElementsAssignment_5 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6145:1: ( ( rule__Agent__ElementsAssignment_5 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6145:1: ( ( rule__Agent__ElementsAssignment_5 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6146:1: ( rule__Agent__ElementsAssignment_5 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getElementsAssignment_5()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6147:1: ( rule__Agent__ElementsAssignment_5 )*
            loop46:
            do {
                int alt46=2;
                int LA46_0 = input.LA(1);

                if ( ((LA46_0>=16 && LA46_0<=20)||LA46_0==53||LA46_0==56||LA46_0==60||LA46_0==62) ) {
                    alt46=1;
                }


                switch (alt46) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6147:2: rule__Agent__ElementsAssignment_5
            	    {
            	    pushFollow(FOLLOW_rule__Agent__ElementsAssignment_5_in_rule__Agent__Group__5__Impl12820);
            	    rule__Agent__ElementsAssignment_5();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop46;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getElementsAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__5__Impl"


    // $ANTLR start "rule__Agent__Group__6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6157:1: rule__Agent__Group__6 : rule__Agent__Group__6__Impl ;
    public final void rule__Agent__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6161:1: ( rule__Agent__Group__6__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6162:2: rule__Agent__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__Agent__Group__6__Impl_in_rule__Agent__Group__612851);
            rule__Agent__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__6"


    // $ANTLR start "rule__Agent__Group__6__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6168:1: rule__Agent__Group__6__Impl : ( '}' ) ;
    public final void rule__Agent__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6172:1: ( ( '}' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6173:1: ( '}' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6173:1: ( '}' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6174:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getRightCurlyBracketKeyword_6()); 
            }
            match(input,36,FOLLOW_36_in_rule__Agent__Group__6__Impl12879); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getRightCurlyBracketKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group__6__Impl"


    // $ANTLR start "rule__Agent__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6201:1: rule__Agent__Group_3__0 : rule__Agent__Group_3__0__Impl rule__Agent__Group_3__1 ;
    public final void rule__Agent__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6205:1: ( rule__Agent__Group_3__0__Impl rule__Agent__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6206:2: rule__Agent__Group_3__0__Impl rule__Agent__Group_3__1
            {
            pushFollow(FOLLOW_rule__Agent__Group_3__0__Impl_in_rule__Agent__Group_3__012924);
            rule__Agent__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group_3__1_in_rule__Agent__Group_3__012927);
            rule__Agent__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3__0"


    // $ANTLR start "rule__Agent__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6213:1: rule__Agent__Group_3__0__Impl : ( 'extends' ) ;
    public final void rule__Agent__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6217:1: ( ( 'extends' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6218:1: ( 'extends' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6218:1: ( 'extends' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6219:1: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getExtendsKeyword_3_0()); 
            }
            match(input,59,FOLLOW_59_in_rule__Agent__Group_3__0__Impl12955); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getExtendsKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3__0__Impl"


    // $ANTLR start "rule__Agent__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6232:1: rule__Agent__Group_3__1 : rule__Agent__Group_3__1__Impl rule__Agent__Group_3__2 ;
    public final void rule__Agent__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6236:1: ( rule__Agent__Group_3__1__Impl rule__Agent__Group_3__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6237:2: rule__Agent__Group_3__1__Impl rule__Agent__Group_3__2
            {
            pushFollow(FOLLOW_rule__Agent__Group_3__1__Impl_in_rule__Agent__Group_3__112986);
            rule__Agent__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group_3__2_in_rule__Agent__Group_3__112989);
            rule__Agent__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3__1"


    // $ANTLR start "rule__Agent__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6244:1: rule__Agent__Group_3__1__Impl : ( ( rule__Agent__SuperTypesAssignment_3_1 ) ) ;
    public final void rule__Agent__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6248:1: ( ( ( rule__Agent__SuperTypesAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6249:1: ( ( rule__Agent__SuperTypesAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6249:1: ( ( rule__Agent__SuperTypesAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6250:1: ( rule__Agent__SuperTypesAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getSuperTypesAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6251:1: ( rule__Agent__SuperTypesAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6251:2: rule__Agent__SuperTypesAssignment_3_1
            {
            pushFollow(FOLLOW_rule__Agent__SuperTypesAssignment_3_1_in_rule__Agent__Group_3__1__Impl13016);
            rule__Agent__SuperTypesAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getSuperTypesAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3__1__Impl"


    // $ANTLR start "rule__Agent__Group_3__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6261:1: rule__Agent__Group_3__2 : rule__Agent__Group_3__2__Impl ;
    public final void rule__Agent__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6265:1: ( rule__Agent__Group_3__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6266:2: rule__Agent__Group_3__2__Impl
            {
            pushFollow(FOLLOW_rule__Agent__Group_3__2__Impl_in_rule__Agent__Group_3__213046);
            rule__Agent__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3__2"


    // $ANTLR start "rule__Agent__Group_3__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6272:1: rule__Agent__Group_3__2__Impl : ( ( rule__Agent__Group_3_2__0 )* ) ;
    public final void rule__Agent__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6276:1: ( ( ( rule__Agent__Group_3_2__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6277:1: ( ( rule__Agent__Group_3_2__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6277:1: ( ( rule__Agent__Group_3_2__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6278:1: ( rule__Agent__Group_3_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getGroup_3_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6279:1: ( rule__Agent__Group_3_2__0 )*
            loop47:
            do {
                int alt47=2;
                int LA47_0 = input.LA(1);

                if ( (LA47_0==45) ) {
                    alt47=1;
                }


                switch (alt47) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6279:2: rule__Agent__Group_3_2__0
            	    {
            	    pushFollow(FOLLOW_rule__Agent__Group_3_2__0_in_rule__Agent__Group_3__2__Impl13073);
            	    rule__Agent__Group_3_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop47;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getGroup_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3__2__Impl"


    // $ANTLR start "rule__Agent__Group_3_2__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6295:1: rule__Agent__Group_3_2__0 : rule__Agent__Group_3_2__0__Impl rule__Agent__Group_3_2__1 ;
    public final void rule__Agent__Group_3_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6299:1: ( rule__Agent__Group_3_2__0__Impl rule__Agent__Group_3_2__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6300:2: rule__Agent__Group_3_2__0__Impl rule__Agent__Group_3_2__1
            {
            pushFollow(FOLLOW_rule__Agent__Group_3_2__0__Impl_in_rule__Agent__Group_3_2__013110);
            rule__Agent__Group_3_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Agent__Group_3_2__1_in_rule__Agent__Group_3_2__013113);
            rule__Agent__Group_3_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3_2__0"


    // $ANTLR start "rule__Agent__Group_3_2__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6307:1: rule__Agent__Group_3_2__0__Impl : ( ',' ) ;
    public final void rule__Agent__Group_3_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6311:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6312:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6312:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6313:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,45,FOLLOW_45_in_rule__Agent__Group_3_2__0__Impl13141); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getCommaKeyword_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3_2__0__Impl"


    // $ANTLR start "rule__Agent__Group_3_2__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6326:1: rule__Agent__Group_3_2__1 : rule__Agent__Group_3_2__1__Impl ;
    public final void rule__Agent__Group_3_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6330:1: ( rule__Agent__Group_3_2__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6331:2: rule__Agent__Group_3_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Agent__Group_3_2__1__Impl_in_rule__Agent__Group_3_2__113172);
            rule__Agent__Group_3_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3_2__1"


    // $ANTLR start "rule__Agent__Group_3_2__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6337:1: rule__Agent__Group_3_2__1__Impl : ( ( rule__Agent__SuperTypesAssignment_3_2_1 ) ) ;
    public final void rule__Agent__Group_3_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6341:1: ( ( ( rule__Agent__SuperTypesAssignment_3_2_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6342:1: ( ( rule__Agent__SuperTypesAssignment_3_2_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6342:1: ( ( rule__Agent__SuperTypesAssignment_3_2_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6343:1: ( rule__Agent__SuperTypesAssignment_3_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getSuperTypesAssignment_3_2_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6344:1: ( rule__Agent__SuperTypesAssignment_3_2_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6344:2: rule__Agent__SuperTypesAssignment_3_2_1
            {
            pushFollow(FOLLOW_rule__Agent__SuperTypesAssignment_3_2_1_in_rule__Agent__Group_3_2__1__Impl13199);
            rule__Agent__SuperTypesAssignment_3_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getSuperTypesAssignment_3_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__Group_3_2__1__Impl"


    // $ANTLR start "rule__InitialStatement__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6358:1: rule__InitialStatement__Group__0 : rule__InitialStatement__Group__0__Impl rule__InitialStatement__Group__1 ;
    public final void rule__InitialStatement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6362:1: ( rule__InitialStatement__Group__0__Impl rule__InitialStatement__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6363:2: rule__InitialStatement__Group__0__Impl rule__InitialStatement__Group__1
            {
            pushFollow(FOLLOW_rule__InitialStatement__Group__0__Impl_in_rule__InitialStatement__Group__013233);
            rule__InitialStatement__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__InitialStatement__Group__1_in_rule__InitialStatement__Group__013236);
            rule__InitialStatement__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__Group__0"


    // $ANTLR start "rule__InitialStatement__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6370:1: rule__InitialStatement__Group__0__Impl : ( 'initial' ) ;
    public final void rule__InitialStatement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6374:1: ( ( 'initial' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6375:1: ( 'initial' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6375:1: ( 'initial' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6376:1: 'initial'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInitialStatementAccess().getInitialKeyword_0()); 
            }
            match(input,60,FOLLOW_60_in_rule__InitialStatement__Group__0__Impl13264); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInitialStatementAccess().getInitialKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__Group__0__Impl"


    // $ANTLR start "rule__InitialStatement__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6389:1: rule__InitialStatement__Group__1 : rule__InitialStatement__Group__1__Impl rule__InitialStatement__Group__2 ;
    public final void rule__InitialStatement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6393:1: ( rule__InitialStatement__Group__1__Impl rule__InitialStatement__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6394:2: rule__InitialStatement__Group__1__Impl rule__InitialStatement__Group__2
            {
            pushFollow(FOLLOW_rule__InitialStatement__Group__1__Impl_in_rule__InitialStatement__Group__113295);
            rule__InitialStatement__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__InitialStatement__Group__2_in_rule__InitialStatement__Group__113298);
            rule__InitialStatement__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__Group__1"


    // $ANTLR start "rule__InitialStatement__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6401:1: rule__InitialStatement__Group__1__Impl : ( ( rule__InitialStatement__FormulaAssignment_1 ) ) ;
    public final void rule__InitialStatement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6405:1: ( ( ( rule__InitialStatement__FormulaAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6406:1: ( ( rule__InitialStatement__FormulaAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6406:1: ( ( rule__InitialStatement__FormulaAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6407:1: ( rule__InitialStatement__FormulaAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInitialStatementAccess().getFormulaAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6408:1: ( rule__InitialStatement__FormulaAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6408:2: rule__InitialStatement__FormulaAssignment_1
            {
            pushFollow(FOLLOW_rule__InitialStatement__FormulaAssignment_1_in_rule__InitialStatement__Group__1__Impl13325);
            rule__InitialStatement__FormulaAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInitialStatementAccess().getFormulaAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__Group__1__Impl"


    // $ANTLR start "rule__InitialStatement__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6418:1: rule__InitialStatement__Group__2 : rule__InitialStatement__Group__2__Impl ;
    public final void rule__InitialStatement__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6422:1: ( rule__InitialStatement__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6423:2: rule__InitialStatement__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__InitialStatement__Group__2__Impl_in_rule__InitialStatement__Group__213355);
            rule__InitialStatement__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__Group__2"


    // $ANTLR start "rule__InitialStatement__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6429:1: rule__InitialStatement__Group__2__Impl : ( ';' ) ;
    public final void rule__InitialStatement__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6433:1: ( ( ';' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6434:1: ( ';' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6434:1: ( ';' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6435:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInitialStatementAccess().getSemicolonKeyword_2()); 
            }
            match(input,38,FOLLOW_38_in_rule__InitialStatement__Group__2__Impl13383); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getInitialStatementAccess().getSemicolonKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__Group__2__Impl"


    // $ANTLR start "rule__Goal__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6454:1: rule__Goal__Group__0 : rule__Goal__Group__0__Impl rule__Goal__Group__1 ;
    public final void rule__Goal__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6458:1: ( rule__Goal__Group__0__Impl rule__Goal__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6459:2: rule__Goal__Group__0__Impl rule__Goal__Group__1
            {
            pushFollow(FOLLOW_rule__Goal__Group__0__Impl_in_rule__Goal__Group__013420);
            rule__Goal__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Goal__Group__1_in_rule__Goal__Group__013423);
            rule__Goal__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Goal__Group__0"


    // $ANTLR start "rule__Goal__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6466:1: rule__Goal__Group__0__Impl : ( '!' ) ;
    public final void rule__Goal__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6470:1: ( ( '!' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6471:1: ( '!' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6471:1: ( '!' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6472:1: '!'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalAccess().getExclamationMarkKeyword_0()); 
            }
            match(input,61,FOLLOW_61_in_rule__Goal__Group__0__Impl13451); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalAccess().getExclamationMarkKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Goal__Group__0__Impl"


    // $ANTLR start "rule__Goal__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6485:1: rule__Goal__Group__1 : rule__Goal__Group__1__Impl ;
    public final void rule__Goal__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6489:1: ( rule__Goal__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6490:2: rule__Goal__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Goal__Group__1__Impl_in_rule__Goal__Group__113482);
            rule__Goal__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Goal__Group__1"


    // $ANTLR start "rule__Goal__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6496:1: rule__Goal__Group__1__Impl : ( ( rule__Goal__PredicateAssignment_1 ) ) ;
    public final void rule__Goal__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6500:1: ( ( ( rule__Goal__PredicateAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6501:1: ( ( rule__Goal__PredicateAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6501:1: ( ( rule__Goal__PredicateAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6502:1: ( rule__Goal__PredicateAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalAccess().getPredicateAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6503:1: ( rule__Goal__PredicateAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6503:2: rule__Goal__PredicateAssignment_1
            {
            pushFollow(FOLLOW_rule__Goal__PredicateAssignment_1_in_rule__Goal__Group__1__Impl13509);
            rule__Goal__PredicateAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalAccess().getPredicateAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Goal__Group__1__Impl"


    // $ANTLR start "rule__PlanStatement__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6517:1: rule__PlanStatement__Group__0 : rule__PlanStatement__Group__0__Impl rule__PlanStatement__Group__1 ;
    public final void rule__PlanStatement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6521:1: ( rule__PlanStatement__Group__0__Impl rule__PlanStatement__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6522:2: rule__PlanStatement__Group__0__Impl rule__PlanStatement__Group__1
            {
            pushFollow(FOLLOW_rule__PlanStatement__Group__0__Impl_in_rule__PlanStatement__Group__013543);
            rule__PlanStatement__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PlanStatement__Group__1_in_rule__PlanStatement__Group__013546);
            rule__PlanStatement__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__0"


    // $ANTLR start "rule__PlanStatement__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6529:1: rule__PlanStatement__Group__0__Impl : ( ( rule__PlanStatement__Alternatives_0 )? ) ;
    public final void rule__PlanStatement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6533:1: ( ( ( rule__PlanStatement__Alternatives_0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6534:1: ( ( rule__PlanStatement__Alternatives_0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6534:1: ( ( rule__PlanStatement__Alternatives_0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6535:1: ( rule__PlanStatement__Alternatives_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getAlternatives_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6536:1: ( rule__PlanStatement__Alternatives_0 )?
            int alt48=2;
            int LA48_0 = input.LA(1);

            if ( ((LA48_0>=16 && LA48_0<=17)) ) {
                alt48=1;
            }
            switch (alt48) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6536:2: rule__PlanStatement__Alternatives_0
                    {
                    pushFollow(FOLLOW_rule__PlanStatement__Alternatives_0_in_rule__PlanStatement__Group__0__Impl13573);
                    rule__PlanStatement__Alternatives_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__0__Impl"


    // $ANTLR start "rule__PlanStatement__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6546:1: rule__PlanStatement__Group__1 : rule__PlanStatement__Group__1__Impl rule__PlanStatement__Group__2 ;
    public final void rule__PlanStatement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6550:1: ( rule__PlanStatement__Group__1__Impl rule__PlanStatement__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6551:2: rule__PlanStatement__Group__1__Impl rule__PlanStatement__Group__2
            {
            pushFollow(FOLLOW_rule__PlanStatement__Group__1__Impl_in_rule__PlanStatement__Group__113604);
            rule__PlanStatement__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PlanStatement__Group__2_in_rule__PlanStatement__Group__113607);
            rule__PlanStatement__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__1"


    // $ANTLR start "rule__PlanStatement__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6558:1: rule__PlanStatement__Group__1__Impl : ( 'plan' ) ;
    public final void rule__PlanStatement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6562:1: ( ( 'plan' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6563:1: ( 'plan' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6563:1: ( 'plan' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6564:1: 'plan'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getPlanKeyword_1()); 
            }
            match(input,53,FOLLOW_53_in_rule__PlanStatement__Group__1__Impl13635); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getPlanKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__1__Impl"


    // $ANTLR start "rule__PlanStatement__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6577:1: rule__PlanStatement__Group__2 : rule__PlanStatement__Group__2__Impl rule__PlanStatement__Group__3 ;
    public final void rule__PlanStatement__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6581:1: ( rule__PlanStatement__Group__2__Impl rule__PlanStatement__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6582:2: rule__PlanStatement__Group__2__Impl rule__PlanStatement__Group__3
            {
            pushFollow(FOLLOW_rule__PlanStatement__Group__2__Impl_in_rule__PlanStatement__Group__213666);
            rule__PlanStatement__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__PlanStatement__Group__3_in_rule__PlanStatement__Group__213669);
            rule__PlanStatement__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__2"


    // $ANTLR start "rule__PlanStatement__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6589:1: rule__PlanStatement__Group__2__Impl : ( ( rule__PlanStatement__IdentfierAssignment_2 ) ) ;
    public final void rule__PlanStatement__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6593:1: ( ( ( rule__PlanStatement__IdentfierAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6594:1: ( ( rule__PlanStatement__IdentfierAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6594:1: ( ( rule__PlanStatement__IdentfierAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6595:1: ( rule__PlanStatement__IdentfierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getIdentfierAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6596:1: ( rule__PlanStatement__IdentfierAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6596:2: rule__PlanStatement__IdentfierAssignment_2
            {
            pushFollow(FOLLOW_rule__PlanStatement__IdentfierAssignment_2_in_rule__PlanStatement__Group__2__Impl13696);
            rule__PlanStatement__IdentfierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getIdentfierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__2__Impl"


    // $ANTLR start "rule__PlanStatement__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6606:1: rule__PlanStatement__Group__3 : rule__PlanStatement__Group__3__Impl ;
    public final void rule__PlanStatement__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6610:1: ( rule__PlanStatement__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6611:2: rule__PlanStatement__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__PlanStatement__Group__3__Impl_in_rule__PlanStatement__Group__313726);
            rule__PlanStatement__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__3"


    // $ANTLR start "rule__PlanStatement__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6617:1: rule__PlanStatement__Group__3__Impl : ( ( rule__PlanStatement__PlanAssignment_3 ) ) ;
    public final void rule__PlanStatement__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6621:1: ( ( ( rule__PlanStatement__PlanAssignment_3 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6622:1: ( ( rule__PlanStatement__PlanAssignment_3 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6622:1: ( ( rule__PlanStatement__PlanAssignment_3 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6623:1: ( rule__PlanStatement__PlanAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getPlanAssignment_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6624:1: ( rule__PlanStatement__PlanAssignment_3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6624:2: rule__PlanStatement__PlanAssignment_3
            {
            pushFollow(FOLLOW_rule__PlanStatement__PlanAssignment_3_in_rule__PlanStatement__Group__3__Impl13753);
            rule__PlanStatement__PlanAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getPlanAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__Group__3__Impl"


    // $ANTLR start "rule__RuleStatement__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6642:1: rule__RuleStatement__Group__0 : rule__RuleStatement__Group__0__Impl rule__RuleStatement__Group__1 ;
    public final void rule__RuleStatement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6646:1: ( rule__RuleStatement__Group__0__Impl rule__RuleStatement__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6647:2: rule__RuleStatement__Group__0__Impl rule__RuleStatement__Group__1
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group__0__Impl_in_rule__RuleStatement__Group__013791);
            rule__RuleStatement__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RuleStatement__Group__1_in_rule__RuleStatement__Group__013794);
            rule__RuleStatement__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__0"


    // $ANTLR start "rule__RuleStatement__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6654:1: rule__RuleStatement__Group__0__Impl : ( ( rule__RuleStatement__Alternatives_0 )? ) ;
    public final void rule__RuleStatement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6658:1: ( ( ( rule__RuleStatement__Alternatives_0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6659:1: ( ( rule__RuleStatement__Alternatives_0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6659:1: ( ( rule__RuleStatement__Alternatives_0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6660:1: ( rule__RuleStatement__Alternatives_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getAlternatives_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6661:1: ( rule__RuleStatement__Alternatives_0 )?
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( ((LA49_0>=16 && LA49_0<=17)) ) {
                alt49=1;
            }
            switch (alt49) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6661:2: rule__RuleStatement__Alternatives_0
                    {
                    pushFollow(FOLLOW_rule__RuleStatement__Alternatives_0_in_rule__RuleStatement__Group__0__Impl13821);
                    rule__RuleStatement__Alternatives_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__0__Impl"


    // $ANTLR start "rule__RuleStatement__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6671:1: rule__RuleStatement__Group__1 : rule__RuleStatement__Group__1__Impl rule__RuleStatement__Group__2 ;
    public final void rule__RuleStatement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6675:1: ( rule__RuleStatement__Group__1__Impl rule__RuleStatement__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6676:2: rule__RuleStatement__Group__1__Impl rule__RuleStatement__Group__2
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group__1__Impl_in_rule__RuleStatement__Group__113852);
            rule__RuleStatement__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RuleStatement__Group__2_in_rule__RuleStatement__Group__113855);
            rule__RuleStatement__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__1"


    // $ANTLR start "rule__RuleStatement__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6683:1: rule__RuleStatement__Group__1__Impl : ( 'rule' ) ;
    public final void rule__RuleStatement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6687:1: ( ( 'rule' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6688:1: ( 'rule' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6688:1: ( 'rule' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6689:1: 'rule'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getRuleKeyword_1()); 
            }
            match(input,56,FOLLOW_56_in_rule__RuleStatement__Group__1__Impl13883); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getRuleKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__1__Impl"


    // $ANTLR start "rule__RuleStatement__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6702:1: rule__RuleStatement__Group__2 : rule__RuleStatement__Group__2__Impl rule__RuleStatement__Group__3 ;
    public final void rule__RuleStatement__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6706:1: ( rule__RuleStatement__Group__2__Impl rule__RuleStatement__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6707:2: rule__RuleStatement__Group__2__Impl rule__RuleStatement__Group__3
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group__2__Impl_in_rule__RuleStatement__Group__213914);
            rule__RuleStatement__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RuleStatement__Group__3_in_rule__RuleStatement__Group__213917);
            rule__RuleStatement__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__2"


    // $ANTLR start "rule__RuleStatement__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6714:1: rule__RuleStatement__Group__2__Impl : ( ( rule__RuleStatement__EventAssignment_2 ) ) ;
    public final void rule__RuleStatement__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6718:1: ( ( ( rule__RuleStatement__EventAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6719:1: ( ( rule__RuleStatement__EventAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6719:1: ( ( rule__RuleStatement__EventAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6720:1: ( rule__RuleStatement__EventAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getEventAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6721:1: ( rule__RuleStatement__EventAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6721:2: rule__RuleStatement__EventAssignment_2
            {
            pushFollow(FOLLOW_rule__RuleStatement__EventAssignment_2_in_rule__RuleStatement__Group__2__Impl13944);
            rule__RuleStatement__EventAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getEventAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__2__Impl"


    // $ANTLR start "rule__RuleStatement__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6731:1: rule__RuleStatement__Group__3 : rule__RuleStatement__Group__3__Impl rule__RuleStatement__Group__4 ;
    public final void rule__RuleStatement__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6735:1: ( rule__RuleStatement__Group__3__Impl rule__RuleStatement__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6736:2: rule__RuleStatement__Group__3__Impl rule__RuleStatement__Group__4
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group__3__Impl_in_rule__RuleStatement__Group__313974);
            rule__RuleStatement__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RuleStatement__Group__4_in_rule__RuleStatement__Group__313977);
            rule__RuleStatement__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__3"


    // $ANTLR start "rule__RuleStatement__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6743:1: rule__RuleStatement__Group__3__Impl : ( ( rule__RuleStatement__Group_3__0 )? ) ;
    public final void rule__RuleStatement__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6747:1: ( ( ( rule__RuleStatement__Group_3__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6748:1: ( ( rule__RuleStatement__Group_3__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6748:1: ( ( rule__RuleStatement__Group_3__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6749:1: ( rule__RuleStatement__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6750:1: ( rule__RuleStatement__Group_3__0 )?
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( (LA50_0==57) ) {
                alt50=1;
            }
            switch (alt50) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6750:2: rule__RuleStatement__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__RuleStatement__Group_3__0_in_rule__RuleStatement__Group__3__Impl14004);
                    rule__RuleStatement__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__3__Impl"


    // $ANTLR start "rule__RuleStatement__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6760:1: rule__RuleStatement__Group__4 : rule__RuleStatement__Group__4__Impl ;
    public final void rule__RuleStatement__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6764:1: ( rule__RuleStatement__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6765:2: rule__RuleStatement__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group__4__Impl_in_rule__RuleStatement__Group__414035);
            rule__RuleStatement__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__4"


    // $ANTLR start "rule__RuleStatement__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6771:1: rule__RuleStatement__Group__4__Impl : ( ( rule__RuleStatement__PlanAssignment_4 ) ) ;
    public final void rule__RuleStatement__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6775:1: ( ( ( rule__RuleStatement__PlanAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6776:1: ( ( rule__RuleStatement__PlanAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6776:1: ( ( rule__RuleStatement__PlanAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6777:1: ( rule__RuleStatement__PlanAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getPlanAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6778:1: ( rule__RuleStatement__PlanAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6778:2: rule__RuleStatement__PlanAssignment_4
            {
            pushFollow(FOLLOW_rule__RuleStatement__PlanAssignment_4_in_rule__RuleStatement__Group__4__Impl14062);
            rule__RuleStatement__PlanAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getPlanAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group__4__Impl"


    // $ANTLR start "rule__RuleStatement__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6798:1: rule__RuleStatement__Group_3__0 : rule__RuleStatement__Group_3__0__Impl rule__RuleStatement__Group_3__1 ;
    public final void rule__RuleStatement__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6802:1: ( rule__RuleStatement__Group_3__0__Impl rule__RuleStatement__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6803:2: rule__RuleStatement__Group_3__0__Impl rule__RuleStatement__Group_3__1
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group_3__0__Impl_in_rule__RuleStatement__Group_3__014102);
            rule__RuleStatement__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__RuleStatement__Group_3__1_in_rule__RuleStatement__Group_3__014105);
            rule__RuleStatement__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group_3__0"


    // $ANTLR start "rule__RuleStatement__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6810:1: rule__RuleStatement__Group_3__0__Impl : ( ':' ) ;
    public final void rule__RuleStatement__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6814:1: ( ( ':' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6815:1: ( ':' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6815:1: ( ':' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6816:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getColonKeyword_3_0()); 
            }
            match(input,57,FOLLOW_57_in_rule__RuleStatement__Group_3__0__Impl14133); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getColonKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group_3__0__Impl"


    // $ANTLR start "rule__RuleStatement__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6829:1: rule__RuleStatement__Group_3__1 : rule__RuleStatement__Group_3__1__Impl ;
    public final void rule__RuleStatement__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6833:1: ( rule__RuleStatement__Group_3__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6834:2: rule__RuleStatement__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__RuleStatement__Group_3__1__Impl_in_rule__RuleStatement__Group_3__114164);
            rule__RuleStatement__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group_3__1"


    // $ANTLR start "rule__RuleStatement__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6840:1: rule__RuleStatement__Group_3__1__Impl : ( ( rule__RuleStatement__ContextAssignment_3_1 ) ) ;
    public final void rule__RuleStatement__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6844:1: ( ( ( rule__RuleStatement__ContextAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6845:1: ( ( rule__RuleStatement__ContextAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6845:1: ( ( rule__RuleStatement__ContextAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6846:1: ( rule__RuleStatement__ContextAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getContextAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6847:1: ( rule__RuleStatement__ContextAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6847:2: rule__RuleStatement__ContextAssignment_3_1
            {
            pushFollow(FOLLOW_rule__RuleStatement__ContextAssignment_3_1_in_rule__RuleStatement__Group_3__1__Impl14191);
            rule__RuleStatement__ContextAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getContextAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__Group_3__1__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6861:1: rule__TeleoReactiveFunction__Group__0 : rule__TeleoReactiveFunction__Group__0__Impl rule__TeleoReactiveFunction__Group__1 ;
    public final void rule__TeleoReactiveFunction__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6865:1: ( rule__TeleoReactiveFunction__Group__0__Impl rule__TeleoReactiveFunction__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6866:2: rule__TeleoReactiveFunction__Group__0__Impl rule__TeleoReactiveFunction__Group__1
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__0__Impl_in_rule__TeleoReactiveFunction__Group__014225);
            rule__TeleoReactiveFunction__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__1_in_rule__TeleoReactiveFunction__Group__014228);
            rule__TeleoReactiveFunction__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__0"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6873:1: rule__TeleoReactiveFunction__Group__0__Impl : ( ( rule__TeleoReactiveFunction__Alternatives_0 )? ) ;
    public final void rule__TeleoReactiveFunction__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6877:1: ( ( ( rule__TeleoReactiveFunction__Alternatives_0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6878:1: ( ( rule__TeleoReactiveFunction__Alternatives_0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6878:1: ( ( rule__TeleoReactiveFunction__Alternatives_0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6879:1: ( rule__TeleoReactiveFunction__Alternatives_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getAlternatives_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6880:1: ( rule__TeleoReactiveFunction__Alternatives_0 )?
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( ((LA51_0>=18 && LA51_0<=20)) ) {
                alt51=1;
            }
            switch (alt51) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6880:2: rule__TeleoReactiveFunction__Alternatives_0
                    {
                    pushFollow(FOLLOW_rule__TeleoReactiveFunction__Alternatives_0_in_rule__TeleoReactiveFunction__Group__0__Impl14255);
                    rule__TeleoReactiveFunction__Alternatives_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__0__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6890:1: rule__TeleoReactiveFunction__Group__1 : rule__TeleoReactiveFunction__Group__1__Impl rule__TeleoReactiveFunction__Group__2 ;
    public final void rule__TeleoReactiveFunction__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6894:1: ( rule__TeleoReactiveFunction__Group__1__Impl rule__TeleoReactiveFunction__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6895:2: rule__TeleoReactiveFunction__Group__1__Impl rule__TeleoReactiveFunction__Group__2
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__1__Impl_in_rule__TeleoReactiveFunction__Group__114286);
            rule__TeleoReactiveFunction__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__2_in_rule__TeleoReactiveFunction__Group__114289);
            rule__TeleoReactiveFunction__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__1"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6902:1: rule__TeleoReactiveFunction__Group__1__Impl : ( 'function' ) ;
    public final void rule__TeleoReactiveFunction__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6906:1: ( ( 'function' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6907:1: ( 'function' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6907:1: ( 'function' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6908:1: 'function'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getFunctionKeyword_1()); 
            }
            match(input,62,FOLLOW_62_in_rule__TeleoReactiveFunction__Group__1__Impl14317); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getFunctionKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__1__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6921:1: rule__TeleoReactiveFunction__Group__2 : rule__TeleoReactiveFunction__Group__2__Impl rule__TeleoReactiveFunction__Group__3 ;
    public final void rule__TeleoReactiveFunction__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6925:1: ( rule__TeleoReactiveFunction__Group__2__Impl rule__TeleoReactiveFunction__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6926:2: rule__TeleoReactiveFunction__Group__2__Impl rule__TeleoReactiveFunction__Group__3
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__2__Impl_in_rule__TeleoReactiveFunction__Group__214348);
            rule__TeleoReactiveFunction__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__3_in_rule__TeleoReactiveFunction__Group__214351);
            rule__TeleoReactiveFunction__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__2"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6933:1: rule__TeleoReactiveFunction__Group__2__Impl : ( ( rule__TeleoReactiveFunction__IdentifierAssignment_2 ) ) ;
    public final void rule__TeleoReactiveFunction__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6937:1: ( ( ( rule__TeleoReactiveFunction__IdentifierAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6938:1: ( ( rule__TeleoReactiveFunction__IdentifierAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6938:1: ( ( rule__TeleoReactiveFunction__IdentifierAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6939:1: ( rule__TeleoReactiveFunction__IdentifierAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getIdentifierAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6940:1: ( rule__TeleoReactiveFunction__IdentifierAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6940:2: rule__TeleoReactiveFunction__IdentifierAssignment_2
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__IdentifierAssignment_2_in_rule__TeleoReactiveFunction__Group__2__Impl14378);
            rule__TeleoReactiveFunction__IdentifierAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__2__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6950:1: rule__TeleoReactiveFunction__Group__3 : rule__TeleoReactiveFunction__Group__3__Impl ;
    public final void rule__TeleoReactiveFunction__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6954:1: ( rule__TeleoReactiveFunction__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6955:2: rule__TeleoReactiveFunction__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group__3__Impl_in_rule__TeleoReactiveFunction__Group__314408);
            rule__TeleoReactiveFunction__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__3"


    // $ANTLR start "rule__TeleoReactiveFunction__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6961:1: rule__TeleoReactiveFunction__Group__3__Impl : ( ( rule__TeleoReactiveFunction__Group_3__0 )? ) ;
    public final void rule__TeleoReactiveFunction__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6965:1: ( ( ( rule__TeleoReactiveFunction__Group_3__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6966:1: ( ( rule__TeleoReactiveFunction__Group_3__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6966:1: ( ( rule__TeleoReactiveFunction__Group_3__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6967:1: ( rule__TeleoReactiveFunction__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6968:1: ( rule__TeleoReactiveFunction__Group_3__0 )?
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( (LA52_0==35) ) {
                alt52=1;
            }
            switch (alt52) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6968:2: rule__TeleoReactiveFunction__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group_3__0_in_rule__TeleoReactiveFunction__Group__3__Impl14435);
                    rule__TeleoReactiveFunction__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group__3__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6986:1: rule__TeleoReactiveFunction__Group_3__0 : rule__TeleoReactiveFunction__Group_3__0__Impl rule__TeleoReactiveFunction__Group_3__1 ;
    public final void rule__TeleoReactiveFunction__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6990:1: ( rule__TeleoReactiveFunction__Group_3__0__Impl rule__TeleoReactiveFunction__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6991:2: rule__TeleoReactiveFunction__Group_3__0__Impl rule__TeleoReactiveFunction__Group_3__1
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group_3__0__Impl_in_rule__TeleoReactiveFunction__Group_3__014474);
            rule__TeleoReactiveFunction__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group_3__1_in_rule__TeleoReactiveFunction__Group_3__014477);
            rule__TeleoReactiveFunction__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group_3__0"


    // $ANTLR start "rule__TeleoReactiveFunction__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:6998:1: rule__TeleoReactiveFunction__Group_3__0__Impl : ( '{' ) ;
    public final void rule__TeleoReactiveFunction__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7002:1: ( ( '{' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7003:1: ( '{' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7003:1: ( '{' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7004:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getLeftCurlyBracketKeyword_3_0()); 
            }
            match(input,35,FOLLOW_35_in_rule__TeleoReactiveFunction__Group_3__0__Impl14505); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getLeftCurlyBracketKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group_3__0__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7017:1: rule__TeleoReactiveFunction__Group_3__1 : rule__TeleoReactiveFunction__Group_3__1__Impl rule__TeleoReactiveFunction__Group_3__2 ;
    public final void rule__TeleoReactiveFunction__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7021:1: ( rule__TeleoReactiveFunction__Group_3__1__Impl rule__TeleoReactiveFunction__Group_3__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7022:2: rule__TeleoReactiveFunction__Group_3__1__Impl rule__TeleoReactiveFunction__Group_3__2
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group_3__1__Impl_in_rule__TeleoReactiveFunction__Group_3__114536);
            rule__TeleoReactiveFunction__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group_3__2_in_rule__TeleoReactiveFunction__Group_3__114539);
            rule__TeleoReactiveFunction__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group_3__1"


    // $ANTLR start "rule__TeleoReactiveFunction__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7029:1: rule__TeleoReactiveFunction__Group_3__1__Impl : ( ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 ) ) ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )* ) ) ;
    public final void rule__TeleoReactiveFunction__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7033:1: ( ( ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 ) ) ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )* ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7034:1: ( ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 ) ) ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )* ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7034:1: ( ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 ) ) ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7035:1: ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 ) ) ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7035:1: ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7036:1: ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getRulesAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7037:1: ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7037:2: rule__TeleoReactiveFunction__RulesAssignment_3_1
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__RulesAssignment_3_1_in_rule__TeleoReactiveFunction__Group_3__1__Impl14568);
            rule__TeleoReactiveFunction__RulesAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getRulesAssignment_3_1()); 
            }

            }

            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7040:1: ( ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7041:1: ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getRulesAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7042:1: ( rule__TeleoReactiveFunction__RulesAssignment_3_1 )*
            loop53:
            do {
                int alt53=2;
                int LA53_0 = input.LA(1);

                if ( ((LA53_0>=RULE_STRING && LA53_0<=RULE_IDENTIFIER)||(LA53_0>=27 && LA53_0<=28)||LA53_0==42||LA53_0==50||(LA53_0>=66 && LA53_0<=67)||LA53_0==69||LA53_0==79||(LA53_0>=84 && LA53_0<=91)) ) {
                    alt53=1;
                }


                switch (alt53) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7042:2: rule__TeleoReactiveFunction__RulesAssignment_3_1
            	    {
            	    pushFollow(FOLLOW_rule__TeleoReactiveFunction__RulesAssignment_3_1_in_rule__TeleoReactiveFunction__Group_3__1__Impl14580);
            	    rule__TeleoReactiveFunction__RulesAssignment_3_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop53;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getRulesAssignment_3_1()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group_3__1__Impl"


    // $ANTLR start "rule__TeleoReactiveFunction__Group_3__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7053:1: rule__TeleoReactiveFunction__Group_3__2 : rule__TeleoReactiveFunction__Group_3__2__Impl ;
    public final void rule__TeleoReactiveFunction__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7057:1: ( rule__TeleoReactiveFunction__Group_3__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7058:2: rule__TeleoReactiveFunction__Group_3__2__Impl
            {
            pushFollow(FOLLOW_rule__TeleoReactiveFunction__Group_3__2__Impl_in_rule__TeleoReactiveFunction__Group_3__214613);
            rule__TeleoReactiveFunction__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group_3__2"


    // $ANTLR start "rule__TeleoReactiveFunction__Group_3__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7064:1: rule__TeleoReactiveFunction__Group_3__2__Impl : ( '}' ) ;
    public final void rule__TeleoReactiveFunction__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7068:1: ( ( '}' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7069:1: ( '}' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7069:1: ( '}' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7070:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getRightCurlyBracketKeyword_3_2()); 
            }
            match(input,36,FOLLOW_36_in_rule__TeleoReactiveFunction__Group_3__2__Impl14641); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getRightCurlyBracketKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__Group_3__2__Impl"


    // $ANTLR start "rule__Statement__Group_0__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7089:1: rule__Statement__Group_0__0 : rule__Statement__Group_0__0__Impl rule__Statement__Group_0__1 ;
    public final void rule__Statement__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7093:1: ( rule__Statement__Group_0__0__Impl rule__Statement__Group_0__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7094:2: rule__Statement__Group_0__0__Impl rule__Statement__Group_0__1
            {
            pushFollow(FOLLOW_rule__Statement__Group_0__0__Impl_in_rule__Statement__Group_0__014678);
            rule__Statement__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Statement__Group_0__1_in_rule__Statement__Group_0__014681);
            rule__Statement__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Group_0__0"


    // $ANTLR start "rule__Statement__Group_0__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7101:1: rule__Statement__Group_0__0__Impl : ( ( rule__Statement__Alternatives_0_0 ) ) ;
    public final void rule__Statement__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7105:1: ( ( ( rule__Statement__Alternatives_0_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7106:1: ( ( rule__Statement__Alternatives_0_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7106:1: ( ( rule__Statement__Alternatives_0_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7107:1: ( rule__Statement__Alternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStatementAccess().getAlternatives_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7108:1: ( rule__Statement__Alternatives_0_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7108:2: rule__Statement__Alternatives_0_0
            {
            pushFollow(FOLLOW_rule__Statement__Alternatives_0_0_in_rule__Statement__Group_0__0__Impl14708);
            rule__Statement__Alternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getStatementAccess().getAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Group_0__0__Impl"


    // $ANTLR start "rule__Statement__Group_0__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7118:1: rule__Statement__Group_0__1 : rule__Statement__Group_0__1__Impl ;
    public final void rule__Statement__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7122:1: ( rule__Statement__Group_0__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7123:2: rule__Statement__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Statement__Group_0__1__Impl_in_rule__Statement__Group_0__114738);
            rule__Statement__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Group_0__1"


    // $ANTLR start "rule__Statement__Group_0__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7129:1: rule__Statement__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Statement__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7133:1: ( ( ';' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7134:1: ( ';' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7134:1: ( ';' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7135:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getStatementAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,38,FOLLOW_38_in_rule__Statement__Group_0__1__Impl14766); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getStatementAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Statement__Group_0__1__Impl"


    // $ANTLR start "rule__AND__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7152:1: rule__AND__Group__0 : rule__AND__Group__0__Impl rule__AND__Group__1 ;
    public final void rule__AND__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7156:1: ( rule__AND__Group__0__Impl rule__AND__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7157:2: rule__AND__Group__0__Impl rule__AND__Group__1
            {
            pushFollow(FOLLOW_rule__AND__Group__0__Impl_in_rule__AND__Group__014801);
            rule__AND__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AND__Group__1_in_rule__AND__Group__014804);
            rule__AND__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group__0"


    // $ANTLR start "rule__AND__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7164:1: rule__AND__Group__0__Impl : ( ( rule__AND__FormulasAssignment_0 ) ) ;
    public final void rule__AND__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7168:1: ( ( ( rule__AND__FormulasAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7169:1: ( ( rule__AND__FormulasAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7169:1: ( ( rule__AND__FormulasAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7170:1: ( rule__AND__FormulasAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getFormulasAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7171:1: ( rule__AND__FormulasAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7171:2: rule__AND__FormulasAssignment_0
            {
            pushFollow(FOLLOW_rule__AND__FormulasAssignment_0_in_rule__AND__Group__0__Impl14831);
            rule__AND__FormulasAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getFormulasAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group__0__Impl"


    // $ANTLR start "rule__AND__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7181:1: rule__AND__Group__1 : rule__AND__Group__1__Impl ;
    public final void rule__AND__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7185:1: ( rule__AND__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7186:2: rule__AND__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__AND__Group__1__Impl_in_rule__AND__Group__114861);
            rule__AND__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group__1"


    // $ANTLR start "rule__AND__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7192:1: rule__AND__Group__1__Impl : ( ( rule__AND__Group_1__0 )* ) ;
    public final void rule__AND__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7196:1: ( ( ( rule__AND__Group_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7197:1: ( ( rule__AND__Group_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7197:1: ( ( rule__AND__Group_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7198:1: ( rule__AND__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getGroup_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7199:1: ( rule__AND__Group_1__0 )*
            loop54:
            do {
                int alt54=2;
                int LA54_0 = input.LA(1);

                if ( (LA54_0==63) ) {
                    alt54=1;
                }


                switch (alt54) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7199:2: rule__AND__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__AND__Group_1__0_in_rule__AND__Group__1__Impl14888);
            	    rule__AND__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop54;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group__1__Impl"


    // $ANTLR start "rule__AND__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7213:1: rule__AND__Group_1__0 : rule__AND__Group_1__0__Impl rule__AND__Group_1__1 ;
    public final void rule__AND__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7217:1: ( rule__AND__Group_1__0__Impl rule__AND__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7218:2: rule__AND__Group_1__0__Impl rule__AND__Group_1__1
            {
            pushFollow(FOLLOW_rule__AND__Group_1__0__Impl_in_rule__AND__Group_1__014923);
            rule__AND__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__AND__Group_1__1_in_rule__AND__Group_1__014926);
            rule__AND__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group_1__0"


    // $ANTLR start "rule__AND__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7225:1: rule__AND__Group_1__0__Impl : ( ( '&' ) ) ;
    public final void rule__AND__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7229:1: ( ( ( '&' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7230:1: ( ( '&' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7230:1: ( ( '&' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7231:1: ( '&' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getAmpersandKeyword_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7232:1: ( '&' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7233:2: '&'
            {
            match(input,63,FOLLOW_63_in_rule__AND__Group_1__0__Impl14955); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getAmpersandKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group_1__0__Impl"


    // $ANTLR start "rule__AND__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7244:1: rule__AND__Group_1__1 : rule__AND__Group_1__1__Impl ;
    public final void rule__AND__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7248:1: ( rule__AND__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7249:2: rule__AND__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__AND__Group_1__1__Impl_in_rule__AND__Group_1__114987);
            rule__AND__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group_1__1"


    // $ANTLR start "rule__AND__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7255:1: rule__AND__Group_1__1__Impl : ( ( rule__AND__FormulasAssignment_1_1 ) ) ;
    public final void rule__AND__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7259:1: ( ( ( rule__AND__FormulasAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7260:1: ( ( rule__AND__FormulasAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7260:1: ( ( rule__AND__FormulasAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7261:1: ( rule__AND__FormulasAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getFormulasAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7262:1: ( rule__AND__FormulasAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7262:2: rule__AND__FormulasAssignment_1_1
            {
            pushFollow(FOLLOW_rule__AND__FormulasAssignment_1_1_in_rule__AND__Group_1__1__Impl15014);
            rule__AND__FormulasAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getFormulasAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__Group_1__1__Impl"


    // $ANTLR start "rule__Comparison__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7276:1: rule__Comparison__Group__0 : rule__Comparison__Group__0__Impl rule__Comparison__Group__1 ;
    public final void rule__Comparison__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7280:1: ( rule__Comparison__Group__0__Impl rule__Comparison__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7281:2: rule__Comparison__Group__0__Impl rule__Comparison__Group__1
            {
            pushFollow(FOLLOW_rule__Comparison__Group__0__Impl_in_rule__Comparison__Group__015048);
            rule__Comparison__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Comparison__Group__1_in_rule__Comparison__Group__015051);
            rule__Comparison__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__Group__0"


    // $ANTLR start "rule__Comparison__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7288:1: rule__Comparison__Group__0__Impl : ( ( rule__Comparison__LeftAssignment_0 ) ) ;
    public final void rule__Comparison__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7292:1: ( ( ( rule__Comparison__LeftAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7293:1: ( ( rule__Comparison__LeftAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7293:1: ( ( rule__Comparison__LeftAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7294:1: ( rule__Comparison__LeftAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getLeftAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7295:1: ( rule__Comparison__LeftAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7295:2: rule__Comparison__LeftAssignment_0
            {
            pushFollow(FOLLOW_rule__Comparison__LeftAssignment_0_in_rule__Comparison__Group__0__Impl15078);
            rule__Comparison__LeftAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getLeftAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__Group__0__Impl"


    // $ANTLR start "rule__Comparison__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7305:1: rule__Comparison__Group__1 : rule__Comparison__Group__1__Impl rule__Comparison__Group__2 ;
    public final void rule__Comparison__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7309:1: ( rule__Comparison__Group__1__Impl rule__Comparison__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7310:2: rule__Comparison__Group__1__Impl rule__Comparison__Group__2
            {
            pushFollow(FOLLOW_rule__Comparison__Group__1__Impl_in_rule__Comparison__Group__115108);
            rule__Comparison__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Comparison__Group__2_in_rule__Comparison__Group__115111);
            rule__Comparison__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__Group__1"


    // $ANTLR start "rule__Comparison__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7317:1: rule__Comparison__Group__1__Impl : ( ( rule__Comparison__OperationAssignment_1 ) ) ;
    public final void rule__Comparison__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7321:1: ( ( ( rule__Comparison__OperationAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7322:1: ( ( rule__Comparison__OperationAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7322:1: ( ( rule__Comparison__OperationAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7323:1: ( rule__Comparison__OperationAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getOperationAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7324:1: ( rule__Comparison__OperationAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7324:2: rule__Comparison__OperationAssignment_1
            {
            pushFollow(FOLLOW_rule__Comparison__OperationAssignment_1_in_rule__Comparison__Group__1__Impl15138);
            rule__Comparison__OperationAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getOperationAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__Group__1__Impl"


    // $ANTLR start "rule__Comparison__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7334:1: rule__Comparison__Group__2 : rule__Comparison__Group__2__Impl ;
    public final void rule__Comparison__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7338:1: ( rule__Comparison__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7339:2: rule__Comparison__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Comparison__Group__2__Impl_in_rule__Comparison__Group__215168);
            rule__Comparison__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__Group__2"


    // $ANTLR start "rule__Comparison__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7345:1: rule__Comparison__Group__2__Impl : ( ( rule__Comparison__RightAssignment_2 ) ) ;
    public final void rule__Comparison__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7349:1: ( ( ( rule__Comparison__RightAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7350:1: ( ( rule__Comparison__RightAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7350:1: ( ( rule__Comparison__RightAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7351:1: ( rule__Comparison__RightAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getRightAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7352:1: ( rule__Comparison__RightAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7352:2: rule__Comparison__RightAssignment_2
            {
            pushFollow(FOLLOW_rule__Comparison__RightAssignment_2_in_rule__Comparison__Group__2__Impl15195);
            rule__Comparison__RightAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getRightAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__Group__2__Impl"


    // $ANTLR start "rule__MentalEvent__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7368:1: rule__MentalEvent__Group__0 : rule__MentalEvent__Group__0__Impl rule__MentalEvent__Group__1 ;
    public final void rule__MentalEvent__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7372:1: ( rule__MentalEvent__Group__0__Impl rule__MentalEvent__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7373:2: rule__MentalEvent__Group__0__Impl rule__MentalEvent__Group__1
            {
            pushFollow(FOLLOW_rule__MentalEvent__Group__0__Impl_in_rule__MentalEvent__Group__015231);
            rule__MentalEvent__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MentalEvent__Group__1_in_rule__MentalEvent__Group__015234);
            rule__MentalEvent__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__Group__0"


    // $ANTLR start "rule__MentalEvent__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7380:1: rule__MentalEvent__Group__0__Impl : ( ( rule__MentalEvent__TypeAssignment_0 ) ) ;
    public final void rule__MentalEvent__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7384:1: ( ( ( rule__MentalEvent__TypeAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7385:1: ( ( rule__MentalEvent__TypeAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7385:1: ( ( rule__MentalEvent__TypeAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7386:1: ( rule__MentalEvent__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMentalEventAccess().getTypeAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7387:1: ( rule__MentalEvent__TypeAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7387:2: rule__MentalEvent__TypeAssignment_0
            {
            pushFollow(FOLLOW_rule__MentalEvent__TypeAssignment_0_in_rule__MentalEvent__Group__0__Impl15261);
            rule__MentalEvent__TypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMentalEventAccess().getTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__Group__0__Impl"


    // $ANTLR start "rule__MentalEvent__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7397:1: rule__MentalEvent__Group__1 : rule__MentalEvent__Group__1__Impl ;
    public final void rule__MentalEvent__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7401:1: ( rule__MentalEvent__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7402:2: rule__MentalEvent__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__MentalEvent__Group__1__Impl_in_rule__MentalEvent__Group__115291);
            rule__MentalEvent__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__Group__1"


    // $ANTLR start "rule__MentalEvent__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7408:1: rule__MentalEvent__Group__1__Impl : ( ( rule__MentalEvent__FormulaAssignment_1 ) ) ;
    public final void rule__MentalEvent__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7412:1: ( ( ( rule__MentalEvent__FormulaAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7413:1: ( ( rule__MentalEvent__FormulaAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7413:1: ( ( rule__MentalEvent__FormulaAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7414:1: ( rule__MentalEvent__FormulaAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMentalEventAccess().getFormulaAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7415:1: ( rule__MentalEvent__FormulaAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7415:2: rule__MentalEvent__FormulaAssignment_1
            {
            pushFollow(FOLLOW_rule__MentalEvent__FormulaAssignment_1_in_rule__MentalEvent__Group__1__Impl15318);
            rule__MentalEvent__FormulaAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMentalEventAccess().getFormulaAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__Group__1__Impl"


    // $ANTLR start "rule__MessageEvent__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7429:1: rule__MessageEvent__Group__0 : rule__MessageEvent__Group__0__Impl rule__MessageEvent__Group__1 ;
    public final void rule__MessageEvent__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7433:1: ( rule__MessageEvent__Group__0__Impl rule__MessageEvent__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7434:2: rule__MessageEvent__Group__0__Impl rule__MessageEvent__Group__1
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__0__Impl_in_rule__MessageEvent__Group__015352);
            rule__MessageEvent__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__1_in_rule__MessageEvent__Group__015355);
            rule__MessageEvent__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__0"


    // $ANTLR start "rule__MessageEvent__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7441:1: rule__MessageEvent__Group__0__Impl : ( '@message' ) ;
    public final void rule__MessageEvent__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7445:1: ( ( '@message' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7446:1: ( '@message' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7446:1: ( '@message' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7447:1: '@message'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getMessageKeyword_0()); 
            }
            match(input,64,FOLLOW_64_in_rule__MessageEvent__Group__0__Impl15383); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getMessageKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__0__Impl"


    // $ANTLR start "rule__MessageEvent__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7460:1: rule__MessageEvent__Group__1 : rule__MessageEvent__Group__1__Impl rule__MessageEvent__Group__2 ;
    public final void rule__MessageEvent__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7464:1: ( rule__MessageEvent__Group__1__Impl rule__MessageEvent__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7465:2: rule__MessageEvent__Group__1__Impl rule__MessageEvent__Group__2
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__1__Impl_in_rule__MessageEvent__Group__115414);
            rule__MessageEvent__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__2_in_rule__MessageEvent__Group__115417);
            rule__MessageEvent__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__1"


    // $ANTLR start "rule__MessageEvent__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7472:1: rule__MessageEvent__Group__1__Impl : ( '(' ) ;
    public final void rule__MessageEvent__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7476:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7477:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7477:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7478:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__MessageEvent__Group__1__Impl15445); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__1__Impl"


    // $ANTLR start "rule__MessageEvent__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7491:1: rule__MessageEvent__Group__2 : rule__MessageEvent__Group__2__Impl rule__MessageEvent__Group__3 ;
    public final void rule__MessageEvent__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7495:1: ( rule__MessageEvent__Group__2__Impl rule__MessageEvent__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7496:2: rule__MessageEvent__Group__2__Impl rule__MessageEvent__Group__3
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__2__Impl_in_rule__MessageEvent__Group__215476);
            rule__MessageEvent__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__3_in_rule__MessageEvent__Group__215479);
            rule__MessageEvent__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__2"


    // $ANTLR start "rule__MessageEvent__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7503:1: rule__MessageEvent__Group__2__Impl : ( ( rule__MessageEvent__PerformativeAssignment_2 ) ) ;
    public final void rule__MessageEvent__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7507:1: ( ( ( rule__MessageEvent__PerformativeAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7508:1: ( ( rule__MessageEvent__PerformativeAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7508:1: ( ( rule__MessageEvent__PerformativeAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7509:1: ( rule__MessageEvent__PerformativeAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getPerformativeAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7510:1: ( rule__MessageEvent__PerformativeAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7510:2: rule__MessageEvent__PerformativeAssignment_2
            {
            pushFollow(FOLLOW_rule__MessageEvent__PerformativeAssignment_2_in_rule__MessageEvent__Group__2__Impl15506);
            rule__MessageEvent__PerformativeAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getPerformativeAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__2__Impl"


    // $ANTLR start "rule__MessageEvent__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7520:1: rule__MessageEvent__Group__3 : rule__MessageEvent__Group__3__Impl rule__MessageEvent__Group__4 ;
    public final void rule__MessageEvent__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7524:1: ( rule__MessageEvent__Group__3__Impl rule__MessageEvent__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7525:2: rule__MessageEvent__Group__3__Impl rule__MessageEvent__Group__4
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__3__Impl_in_rule__MessageEvent__Group__315536);
            rule__MessageEvent__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__4_in_rule__MessageEvent__Group__315539);
            rule__MessageEvent__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__3"


    // $ANTLR start "rule__MessageEvent__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7532:1: rule__MessageEvent__Group__3__Impl : ( ',' ) ;
    public final void rule__MessageEvent__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7536:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7537:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7537:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7538:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getCommaKeyword_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__MessageEvent__Group__3__Impl15567); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__3__Impl"


    // $ANTLR start "rule__MessageEvent__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7551:1: rule__MessageEvent__Group__4 : rule__MessageEvent__Group__4__Impl rule__MessageEvent__Group__5 ;
    public final void rule__MessageEvent__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7555:1: ( rule__MessageEvent__Group__4__Impl rule__MessageEvent__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7556:2: rule__MessageEvent__Group__4__Impl rule__MessageEvent__Group__5
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__4__Impl_in_rule__MessageEvent__Group__415598);
            rule__MessageEvent__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__5_in_rule__MessageEvent__Group__415601);
            rule__MessageEvent__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__4"


    // $ANTLR start "rule__MessageEvent__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7563:1: rule__MessageEvent__Group__4__Impl : ( ( rule__MessageEvent__SenderAssignment_4 ) ) ;
    public final void rule__MessageEvent__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7567:1: ( ( ( rule__MessageEvent__SenderAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7568:1: ( ( rule__MessageEvent__SenderAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7568:1: ( ( rule__MessageEvent__SenderAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7569:1: ( rule__MessageEvent__SenderAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getSenderAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7570:1: ( rule__MessageEvent__SenderAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7570:2: rule__MessageEvent__SenderAssignment_4
            {
            pushFollow(FOLLOW_rule__MessageEvent__SenderAssignment_4_in_rule__MessageEvent__Group__4__Impl15628);
            rule__MessageEvent__SenderAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getSenderAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__4__Impl"


    // $ANTLR start "rule__MessageEvent__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7580:1: rule__MessageEvent__Group__5 : rule__MessageEvent__Group__5__Impl rule__MessageEvent__Group__6 ;
    public final void rule__MessageEvent__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7584:1: ( rule__MessageEvent__Group__5__Impl rule__MessageEvent__Group__6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7585:2: rule__MessageEvent__Group__5__Impl rule__MessageEvent__Group__6
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__5__Impl_in_rule__MessageEvent__Group__515658);
            rule__MessageEvent__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__6_in_rule__MessageEvent__Group__515661);
            rule__MessageEvent__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__5"


    // $ANTLR start "rule__MessageEvent__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7592:1: rule__MessageEvent__Group__5__Impl : ( ',' ) ;
    public final void rule__MessageEvent__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7596:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7597:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7597:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7598:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getCommaKeyword_5()); 
            }
            match(input,45,FOLLOW_45_in_rule__MessageEvent__Group__5__Impl15689); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getCommaKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__5__Impl"


    // $ANTLR start "rule__MessageEvent__Group__6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7611:1: rule__MessageEvent__Group__6 : rule__MessageEvent__Group__6__Impl rule__MessageEvent__Group__7 ;
    public final void rule__MessageEvent__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7615:1: ( rule__MessageEvent__Group__6__Impl rule__MessageEvent__Group__7 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7616:2: rule__MessageEvent__Group__6__Impl rule__MessageEvent__Group__7
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__6__Impl_in_rule__MessageEvent__Group__615720);
            rule__MessageEvent__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__MessageEvent__Group__7_in_rule__MessageEvent__Group__615723);
            rule__MessageEvent__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__6"


    // $ANTLR start "rule__MessageEvent__Group__6__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7623:1: rule__MessageEvent__Group__6__Impl : ( ( rule__MessageEvent__ContentAssignment_6 ) ) ;
    public final void rule__MessageEvent__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7627:1: ( ( ( rule__MessageEvent__ContentAssignment_6 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7628:1: ( ( rule__MessageEvent__ContentAssignment_6 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7628:1: ( ( rule__MessageEvent__ContentAssignment_6 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7629:1: ( rule__MessageEvent__ContentAssignment_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getContentAssignment_6()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7630:1: ( rule__MessageEvent__ContentAssignment_6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7630:2: rule__MessageEvent__ContentAssignment_6
            {
            pushFollow(FOLLOW_rule__MessageEvent__ContentAssignment_6_in_rule__MessageEvent__Group__6__Impl15750);
            rule__MessageEvent__ContentAssignment_6();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getContentAssignment_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__6__Impl"


    // $ANTLR start "rule__MessageEvent__Group__7"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7640:1: rule__MessageEvent__Group__7 : rule__MessageEvent__Group__7__Impl ;
    public final void rule__MessageEvent__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7644:1: ( rule__MessageEvent__Group__7__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7645:2: rule__MessageEvent__Group__7__Impl
            {
            pushFollow(FOLLOW_rule__MessageEvent__Group__7__Impl_in_rule__MessageEvent__Group__715780);
            rule__MessageEvent__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__7"


    // $ANTLR start "rule__MessageEvent__Group__7__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7651:1: rule__MessageEvent__Group__7__Impl : ( ')' ) ;
    public final void rule__MessageEvent__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7655:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7656:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7656:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7657:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getRightParenthesisKeyword_7()); 
            }
            match(input,43,FOLLOW_43_in_rule__MessageEvent__Group__7__Impl15808); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getRightParenthesisKeyword_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__Group__7__Impl"


    // $ANTLR start "rule__Library__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7686:1: rule__Library__Group__0 : rule__Library__Group__0__Impl rule__Library__Group__1 ;
    public final void rule__Library__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7690:1: ( rule__Library__Group__0__Impl rule__Library__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7691:2: rule__Library__Group__0__Impl rule__Library__Group__1
            {
            pushFollow(FOLLOW_rule__Library__Group__0__Impl_in_rule__Library__Group__015855);
            rule__Library__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Library__Group__1_in_rule__Library__Group__015858);
            rule__Library__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__Group__0"


    // $ANTLR start "rule__Library__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7698:1: rule__Library__Group__0__Impl : ( 'import' ) ;
    public final void rule__Library__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7702:1: ( ( 'import' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7703:1: ( 'import' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7703:1: ( 'import' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7704:1: 'import'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryAccess().getImportKeyword_0()); 
            }
            match(input,65,FOLLOW_65_in_rule__Library__Group__0__Impl15886); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryAccess().getImportKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__Group__0__Impl"


    // $ANTLR start "rule__Library__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7717:1: rule__Library__Group__1 : rule__Library__Group__1__Impl rule__Library__Group__2 ;
    public final void rule__Library__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7721:1: ( rule__Library__Group__1__Impl rule__Library__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7722:2: rule__Library__Group__1__Impl rule__Library__Group__2
            {
            pushFollow(FOLLOW_rule__Library__Group__1__Impl_in_rule__Library__Group__115917);
            rule__Library__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Library__Group__2_in_rule__Library__Group__115920);
            rule__Library__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__Group__1"


    // $ANTLR start "rule__Library__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7729:1: rule__Library__Group__1__Impl : ( ( rule__Library__ClazzAssignment_1 ) ) ;
    public final void rule__Library__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7733:1: ( ( ( rule__Library__ClazzAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7734:1: ( ( rule__Library__ClazzAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7734:1: ( ( rule__Library__ClazzAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7735:1: ( rule__Library__ClazzAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryAccess().getClazzAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7736:1: ( rule__Library__ClazzAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7736:2: rule__Library__ClazzAssignment_1
            {
            pushFollow(FOLLOW_rule__Library__ClazzAssignment_1_in_rule__Library__Group__1__Impl15947);
            rule__Library__ClazzAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryAccess().getClazzAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__Group__1__Impl"


    // $ANTLR start "rule__Library__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7746:1: rule__Library__Group__2 : rule__Library__Group__2__Impl ;
    public final void rule__Library__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7750:1: ( rule__Library__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7751:2: rule__Library__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Library__Group__2__Impl_in_rule__Library__Group__215977);
            rule__Library__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__Group__2"


    // $ANTLR start "rule__Library__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7757:1: rule__Library__Group__2__Impl : ( ';' ) ;
    public final void rule__Library__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7761:1: ( ( ';' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7762:1: ( ';' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7762:1: ( ';' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7763:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryAccess().getSemicolonKeyword_2()); 
            }
            match(input,38,FOLLOW_38_in_rule__Library__Group__2__Impl16005); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryAccess().getSemicolonKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__Group__2__Impl"


    // $ANTLR start "rule__LibraryTerm__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7782:1: rule__LibraryTerm__Group__0 : rule__LibraryTerm__Group__0__Impl rule__LibraryTerm__Group__1 ;
    public final void rule__LibraryTerm__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7786:1: ( rule__LibraryTerm__Group__0__Impl rule__LibraryTerm__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7787:2: rule__LibraryTerm__Group__0__Impl rule__LibraryTerm__Group__1
            {
            pushFollow(FOLLOW_rule__LibraryTerm__Group__0__Impl_in_rule__LibraryTerm__Group__016042);
            rule__LibraryTerm__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LibraryTerm__Group__1_in_rule__LibraryTerm__Group__016045);
            rule__LibraryTerm__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__Group__0"


    // $ANTLR start "rule__LibraryTerm__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7794:1: rule__LibraryTerm__Group__0__Impl : ( ( rule__LibraryTerm__ModuleAssignment_0 ) ) ;
    public final void rule__LibraryTerm__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7798:1: ( ( ( rule__LibraryTerm__ModuleAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7799:1: ( ( rule__LibraryTerm__ModuleAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7799:1: ( ( rule__LibraryTerm__ModuleAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7800:1: ( rule__LibraryTerm__ModuleAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermAccess().getModuleAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7801:1: ( rule__LibraryTerm__ModuleAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7801:2: rule__LibraryTerm__ModuleAssignment_0
            {
            pushFollow(FOLLOW_rule__LibraryTerm__ModuleAssignment_0_in_rule__LibraryTerm__Group__0__Impl16072);
            rule__LibraryTerm__ModuleAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermAccess().getModuleAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__Group__0__Impl"


    // $ANTLR start "rule__LibraryTerm__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7811:1: rule__LibraryTerm__Group__1 : rule__LibraryTerm__Group__1__Impl rule__LibraryTerm__Group__2 ;
    public final void rule__LibraryTerm__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7815:1: ( rule__LibraryTerm__Group__1__Impl rule__LibraryTerm__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7816:2: rule__LibraryTerm__Group__1__Impl rule__LibraryTerm__Group__2
            {
            pushFollow(FOLLOW_rule__LibraryTerm__Group__1__Impl_in_rule__LibraryTerm__Group__116102);
            rule__LibraryTerm__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LibraryTerm__Group__2_in_rule__LibraryTerm__Group__116105);
            rule__LibraryTerm__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__Group__1"


    // $ANTLR start "rule__LibraryTerm__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7823:1: rule__LibraryTerm__Group__1__Impl : ( '.' ) ;
    public final void rule__LibraryTerm__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7827:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7828:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7828:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7829:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermAccess().getFullStopKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__LibraryTerm__Group__1__Impl16133); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__Group__1__Impl"


    // $ANTLR start "rule__LibraryTerm__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7842:1: rule__LibraryTerm__Group__2 : rule__LibraryTerm__Group__2__Impl ;
    public final void rule__LibraryTerm__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7846:1: ( rule__LibraryTerm__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7847:2: rule__LibraryTerm__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__LibraryTerm__Group__2__Impl_in_rule__LibraryTerm__Group__216164);
            rule__LibraryTerm__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__Group__2"


    // $ANTLR start "rule__LibraryTerm__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7853:1: rule__LibraryTerm__Group__2__Impl : ( ( rule__LibraryTerm__ActionAssignment_2 ) ) ;
    public final void rule__LibraryTerm__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7857:1: ( ( ( rule__LibraryTerm__ActionAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7858:1: ( ( rule__LibraryTerm__ActionAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7858:1: ( ( rule__LibraryTerm__ActionAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7859:1: ( rule__LibraryTerm__ActionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermAccess().getActionAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7860:1: ( rule__LibraryTerm__ActionAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7860:2: rule__LibraryTerm__ActionAssignment_2
            {
            pushFollow(FOLLOW_rule__LibraryTerm__ActionAssignment_2_in_rule__LibraryTerm__Group__2__Impl16191);
            rule__LibraryTerm__ActionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermAccess().getActionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__Group__2__Impl"


    // $ANTLR start "rule__Count__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7876:1: rule__Count__Group__0 : rule__Count__Group__0__Impl rule__Count__Group__1 ;
    public final void rule__Count__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7880:1: ( rule__Count__Group__0__Impl rule__Count__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7881:2: rule__Count__Group__0__Impl rule__Count__Group__1
            {
            pushFollow(FOLLOW_rule__Count__Group__0__Impl_in_rule__Count__Group__016227);
            rule__Count__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Count__Group__1_in_rule__Count__Group__016230);
            rule__Count__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__0"


    // $ANTLR start "rule__Count__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7888:1: rule__Count__Group__0__Impl : ( 'count' ) ;
    public final void rule__Count__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7892:1: ( ( 'count' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7893:1: ( 'count' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7893:1: ( 'count' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7894:1: 'count'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountAccess().getCountKeyword_0()); 
            }
            match(input,66,FOLLOW_66_in_rule__Count__Group__0__Impl16258); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountAccess().getCountKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__0__Impl"


    // $ANTLR start "rule__Count__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7907:1: rule__Count__Group__1 : rule__Count__Group__1__Impl rule__Count__Group__2 ;
    public final void rule__Count__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7911:1: ( rule__Count__Group__1__Impl rule__Count__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7912:2: rule__Count__Group__1__Impl rule__Count__Group__2
            {
            pushFollow(FOLLOW_rule__Count__Group__1__Impl_in_rule__Count__Group__116289);
            rule__Count__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Count__Group__2_in_rule__Count__Group__116292);
            rule__Count__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__1"


    // $ANTLR start "rule__Count__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7919:1: rule__Count__Group__1__Impl : ( '(' ) ;
    public final void rule__Count__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7923:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7924:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7924:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7925:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__Count__Group__1__Impl16320); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__1__Impl"


    // $ANTLR start "rule__Count__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7938:1: rule__Count__Group__2 : rule__Count__Group__2__Impl rule__Count__Group__3 ;
    public final void rule__Count__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7942:1: ( rule__Count__Group__2__Impl rule__Count__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7943:2: rule__Count__Group__2__Impl rule__Count__Group__3
            {
            pushFollow(FOLLOW_rule__Count__Group__2__Impl_in_rule__Count__Group__216351);
            rule__Count__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Count__Group__3_in_rule__Count__Group__216354);
            rule__Count__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__2"


    // $ANTLR start "rule__Count__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7950:1: rule__Count__Group__2__Impl : ( ( rule__Count__PredicateAssignment_2 ) ) ;
    public final void rule__Count__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7954:1: ( ( ( rule__Count__PredicateAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7955:1: ( ( rule__Count__PredicateAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7955:1: ( ( rule__Count__PredicateAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7956:1: ( rule__Count__PredicateAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountAccess().getPredicateAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7957:1: ( rule__Count__PredicateAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7957:2: rule__Count__PredicateAssignment_2
            {
            pushFollow(FOLLOW_rule__Count__PredicateAssignment_2_in_rule__Count__Group__2__Impl16381);
            rule__Count__PredicateAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountAccess().getPredicateAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__2__Impl"


    // $ANTLR start "rule__Count__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7967:1: rule__Count__Group__3 : rule__Count__Group__3__Impl ;
    public final void rule__Count__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7971:1: ( rule__Count__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7972:2: rule__Count__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Count__Group__3__Impl_in_rule__Count__Group__316411);
            rule__Count__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__3"


    // $ANTLR start "rule__Count__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7978:1: rule__Count__Group__3__Impl : ( ')' ) ;
    public final void rule__Count__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7982:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7983:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7983:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:7984:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__Count__Group__3__Impl16439); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__Group__3__Impl"


    // $ANTLR start "rule__List__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8005:1: rule__List__Group__0 : rule__List__Group__0__Impl rule__List__Group__1 ;
    public final void rule__List__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8009:1: ( rule__List__Group__0__Impl rule__List__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8010:2: rule__List__Group__0__Impl rule__List__Group__1
            {
            pushFollow(FOLLOW_rule__List__Group__0__Impl_in_rule__List__Group__016478);
            rule__List__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__List__Group__1_in_rule__List__Group__016481);
            rule__List__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group__0"


    // $ANTLR start "rule__List__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8017:1: rule__List__Group__0__Impl : ( () ) ;
    public final void rule__List__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8021:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8022:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8022:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8023:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getListAction_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8024:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8026:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getListAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group__0__Impl"


    // $ANTLR start "rule__List__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8036:1: rule__List__Group__1 : rule__List__Group__1__Impl ;
    public final void rule__List__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8040:1: ( rule__List__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8041:2: rule__List__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__List__Group__1__Impl_in_rule__List__Group__116539);
            rule__List__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group__1"


    // $ANTLR start "rule__List__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8047:1: rule__List__Group__1__Impl : ( ( rule__List__Group_1__0 ) ) ;
    public final void rule__List__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8051:1: ( ( ( rule__List__Group_1__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8052:1: ( ( rule__List__Group_1__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8052:1: ( ( rule__List__Group_1__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8053:1: ( rule__List__Group_1__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getGroup_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8054:1: ( rule__List__Group_1__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8054:2: rule__List__Group_1__0
            {
            pushFollow(FOLLOW_rule__List__Group_1__0_in_rule__List__Group__1__Impl16566);
            rule__List__Group_1__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group__1__Impl"


    // $ANTLR start "rule__List__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8068:1: rule__List__Group_1__0 : rule__List__Group_1__0__Impl rule__List__Group_1__1 ;
    public final void rule__List__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8072:1: ( rule__List__Group_1__0__Impl rule__List__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8073:2: rule__List__Group_1__0__Impl rule__List__Group_1__1
            {
            pushFollow(FOLLOW_rule__List__Group_1__0__Impl_in_rule__List__Group_1__016600);
            rule__List__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__List__Group_1__1_in_rule__List__Group_1__016603);
            rule__List__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1__0"


    // $ANTLR start "rule__List__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8080:1: rule__List__Group_1__0__Impl : ( '[' ) ;
    public final void rule__List__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8084:1: ( ( '[' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8085:1: ( '[' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8085:1: ( '[' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8086:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getLeftSquareBracketKeyword_1_0()); 
            }
            match(input,50,FOLLOW_50_in_rule__List__Group_1__0__Impl16631); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getLeftSquareBracketKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1__0__Impl"


    // $ANTLR start "rule__List__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8099:1: rule__List__Group_1__1 : rule__List__Group_1__1__Impl rule__List__Group_1__2 ;
    public final void rule__List__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8103:1: ( rule__List__Group_1__1__Impl rule__List__Group_1__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8104:2: rule__List__Group_1__1__Impl rule__List__Group_1__2
            {
            pushFollow(FOLLOW_rule__List__Group_1__1__Impl_in_rule__List__Group_1__116662);
            rule__List__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__List__Group_1__2_in_rule__List__Group_1__116665);
            rule__List__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1__1"


    // $ANTLR start "rule__List__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8111:1: rule__List__Group_1__1__Impl : ( ( rule__List__Group_1_1__0 )? ) ;
    public final void rule__List__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8115:1: ( ( ( rule__List__Group_1_1__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8116:1: ( ( rule__List__Group_1_1__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8116:1: ( ( rule__List__Group_1_1__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8117:1: ( rule__List__Group_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getGroup_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8118:1: ( rule__List__Group_1_1__0 )?
            int alt55=2;
            int LA55_0 = input.LA(1);

            if ( ((LA55_0>=RULE_STRING && LA55_0<=RULE_IDENTIFIER)||(LA55_0>=27 && LA55_0<=28)||LA55_0==42||LA55_0==50||(LA55_0>=66 && LA55_0<=67)||LA55_0==69||(LA55_0>=85 && LA55_0<=91)) ) {
                alt55=1;
            }
            switch (alt55) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8118:2: rule__List__Group_1_1__0
                    {
                    pushFollow(FOLLOW_rule__List__Group_1_1__0_in_rule__List__Group_1__1__Impl16692);
                    rule__List__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getGroup_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1__1__Impl"


    // $ANTLR start "rule__List__Group_1__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8128:1: rule__List__Group_1__2 : rule__List__Group_1__2__Impl ;
    public final void rule__List__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8132:1: ( rule__List__Group_1__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8133:2: rule__List__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__List__Group_1__2__Impl_in_rule__List__Group_1__216723);
            rule__List__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1__2"


    // $ANTLR start "rule__List__Group_1__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8139:1: rule__List__Group_1__2__Impl : ( ']' ) ;
    public final void rule__List__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8143:1: ( ( ']' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8144:1: ( ']' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8144:1: ( ']' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8145:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getRightSquareBracketKeyword_1_2()); 
            }
            match(input,51,FOLLOW_51_in_rule__List__Group_1__2__Impl16751); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getRightSquareBracketKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1__2__Impl"


    // $ANTLR start "rule__List__Group_1_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8164:1: rule__List__Group_1_1__0 : rule__List__Group_1_1__0__Impl rule__List__Group_1_1__1 ;
    public final void rule__List__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8168:1: ( rule__List__Group_1_1__0__Impl rule__List__Group_1_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8169:2: rule__List__Group_1_1__0__Impl rule__List__Group_1_1__1
            {
            pushFollow(FOLLOW_rule__List__Group_1_1__0__Impl_in_rule__List__Group_1_1__016788);
            rule__List__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__List__Group_1_1__1_in_rule__List__Group_1_1__016791);
            rule__List__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1__0"


    // $ANTLR start "rule__List__Group_1_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8176:1: rule__List__Group_1_1__0__Impl : ( ( rule__List__TermsAssignment_1_1_0 ) ) ;
    public final void rule__List__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8180:1: ( ( ( rule__List__TermsAssignment_1_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8181:1: ( ( rule__List__TermsAssignment_1_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8181:1: ( ( rule__List__TermsAssignment_1_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8182:1: ( rule__List__TermsAssignment_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getTermsAssignment_1_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8183:1: ( rule__List__TermsAssignment_1_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8183:2: rule__List__TermsAssignment_1_1_0
            {
            pushFollow(FOLLOW_rule__List__TermsAssignment_1_1_0_in_rule__List__Group_1_1__0__Impl16818);
            rule__List__TermsAssignment_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getTermsAssignment_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1__0__Impl"


    // $ANTLR start "rule__List__Group_1_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8193:1: rule__List__Group_1_1__1 : rule__List__Group_1_1__1__Impl ;
    public final void rule__List__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8197:1: ( rule__List__Group_1_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8198:2: rule__List__Group_1_1__1__Impl
            {
            pushFollow(FOLLOW_rule__List__Group_1_1__1__Impl_in_rule__List__Group_1_1__116848);
            rule__List__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1__1"


    // $ANTLR start "rule__List__Group_1_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8204:1: rule__List__Group_1_1__1__Impl : ( ( rule__List__Group_1_1_1__0 )* ) ;
    public final void rule__List__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8208:1: ( ( ( rule__List__Group_1_1_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8209:1: ( ( rule__List__Group_1_1_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8209:1: ( ( rule__List__Group_1_1_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8210:1: ( rule__List__Group_1_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getGroup_1_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8211:1: ( rule__List__Group_1_1_1__0 )*
            loop56:
            do {
                int alt56=2;
                int LA56_0 = input.LA(1);

                if ( (LA56_0==45) ) {
                    alt56=1;
                }


                switch (alt56) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8211:2: rule__List__Group_1_1_1__0
            	    {
            	    pushFollow(FOLLOW_rule__List__Group_1_1_1__0_in_rule__List__Group_1_1__1__Impl16875);
            	    rule__List__Group_1_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop56;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getGroup_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1__1__Impl"


    // $ANTLR start "rule__List__Group_1_1_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8225:1: rule__List__Group_1_1_1__0 : rule__List__Group_1_1_1__0__Impl rule__List__Group_1_1_1__1 ;
    public final void rule__List__Group_1_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8229:1: ( rule__List__Group_1_1_1__0__Impl rule__List__Group_1_1_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8230:2: rule__List__Group_1_1_1__0__Impl rule__List__Group_1_1_1__1
            {
            pushFollow(FOLLOW_rule__List__Group_1_1_1__0__Impl_in_rule__List__Group_1_1_1__016910);
            rule__List__Group_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__List__Group_1_1_1__1_in_rule__List__Group_1_1_1__016913);
            rule__List__Group_1_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1_1__0"


    // $ANTLR start "rule__List__Group_1_1_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8237:1: rule__List__Group_1_1_1__0__Impl : ( ',' ) ;
    public final void rule__List__Group_1_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8241:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8242:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8242:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8243:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getCommaKeyword_1_1_1_0()); 
            }
            match(input,45,FOLLOW_45_in_rule__List__Group_1_1_1__0__Impl16941); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getCommaKeyword_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1_1__0__Impl"


    // $ANTLR start "rule__List__Group_1_1_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8256:1: rule__List__Group_1_1_1__1 : rule__List__Group_1_1_1__1__Impl ;
    public final void rule__List__Group_1_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8260:1: ( rule__List__Group_1_1_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8261:2: rule__List__Group_1_1_1__1__Impl
            {
            pushFollow(FOLLOW_rule__List__Group_1_1_1__1__Impl_in_rule__List__Group_1_1_1__116972);
            rule__List__Group_1_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1_1__1"


    // $ANTLR start "rule__List__Group_1_1_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8267:1: rule__List__Group_1_1_1__1__Impl : ( ( rule__List__TermsAssignment_1_1_1_1 ) ) ;
    public final void rule__List__Group_1_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8271:1: ( ( ( rule__List__TermsAssignment_1_1_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8272:1: ( ( rule__List__TermsAssignment_1_1_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8272:1: ( ( rule__List__TermsAssignment_1_1_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8273:1: ( rule__List__TermsAssignment_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getTermsAssignment_1_1_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8274:1: ( rule__List__TermsAssignment_1_1_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8274:2: rule__List__TermsAssignment_1_1_1_1
            {
            pushFollow(FOLLOW_rule__List__TermsAssignment_1_1_1_1_in_rule__List__Group_1_1_1__1__Impl16999);
            rule__List__TermsAssignment_1_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getTermsAssignment_1_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__Group_1_1_1__1__Impl"


    // $ANTLR start "rule__ListConstructor__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8288:1: rule__ListConstructor__Group__0 : rule__ListConstructor__Group__0__Impl rule__ListConstructor__Group__1 ;
    public final void rule__ListConstructor__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8292:1: ( rule__ListConstructor__Group__0__Impl rule__ListConstructor__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8293:2: rule__ListConstructor__Group__0__Impl rule__ListConstructor__Group__1
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__0__Impl_in_rule__ListConstructor__Group__017033);
            rule__ListConstructor__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ListConstructor__Group__1_in_rule__ListConstructor__Group__017036);
            rule__ListConstructor__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__0"


    // $ANTLR start "rule__ListConstructor__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8300:1: rule__ListConstructor__Group__0__Impl : ( 'list' ) ;
    public final void rule__ListConstructor__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8304:1: ( ( 'list' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8305:1: ( 'list' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8305:1: ( 'list' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8306:1: 'list'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getListKeyword_0()); 
            }
            match(input,67,FOLLOW_67_in_rule__ListConstructor__Group__0__Impl17064); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getListKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__0__Impl"


    // $ANTLR start "rule__ListConstructor__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8319:1: rule__ListConstructor__Group__1 : rule__ListConstructor__Group__1__Impl rule__ListConstructor__Group__2 ;
    public final void rule__ListConstructor__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8323:1: ( rule__ListConstructor__Group__1__Impl rule__ListConstructor__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8324:2: rule__ListConstructor__Group__1__Impl rule__ListConstructor__Group__2
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__1__Impl_in_rule__ListConstructor__Group__117095);
            rule__ListConstructor__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ListConstructor__Group__2_in_rule__ListConstructor__Group__117098);
            rule__ListConstructor__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__1"


    // $ANTLR start "rule__ListConstructor__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8331:1: rule__ListConstructor__Group__1__Impl : ( '(' ) ;
    public final void rule__ListConstructor__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8335:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8336:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8336:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8337:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__ListConstructor__Group__1__Impl17126); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__1__Impl"


    // $ANTLR start "rule__ListConstructor__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8350:1: rule__ListConstructor__Group__2 : rule__ListConstructor__Group__2__Impl rule__ListConstructor__Group__3 ;
    public final void rule__ListConstructor__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8354:1: ( rule__ListConstructor__Group__2__Impl rule__ListConstructor__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8355:2: rule__ListConstructor__Group__2__Impl rule__ListConstructor__Group__3
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__2__Impl_in_rule__ListConstructor__Group__217157);
            rule__ListConstructor__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ListConstructor__Group__3_in_rule__ListConstructor__Group__217160);
            rule__ListConstructor__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__2"


    // $ANTLR start "rule__ListConstructor__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8362:1: rule__ListConstructor__Group__2__Impl : ( ( rule__ListConstructor__ContextAssignment_2 ) ) ;
    public final void rule__ListConstructor__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8366:1: ( ( ( rule__ListConstructor__ContextAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8367:1: ( ( rule__ListConstructor__ContextAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8367:1: ( ( rule__ListConstructor__ContextAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8368:1: ( rule__ListConstructor__ContextAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getContextAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8369:1: ( rule__ListConstructor__ContextAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8369:2: rule__ListConstructor__ContextAssignment_2
            {
            pushFollow(FOLLOW_rule__ListConstructor__ContextAssignment_2_in_rule__ListConstructor__Group__2__Impl17187);
            rule__ListConstructor__ContextAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getContextAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__2__Impl"


    // $ANTLR start "rule__ListConstructor__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8379:1: rule__ListConstructor__Group__3 : rule__ListConstructor__Group__3__Impl rule__ListConstructor__Group__4 ;
    public final void rule__ListConstructor__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8383:1: ( rule__ListConstructor__Group__3__Impl rule__ListConstructor__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8384:2: rule__ListConstructor__Group__3__Impl rule__ListConstructor__Group__4
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__3__Impl_in_rule__ListConstructor__Group__317217);
            rule__ListConstructor__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ListConstructor__Group__4_in_rule__ListConstructor__Group__317220);
            rule__ListConstructor__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__3"


    // $ANTLR start "rule__ListConstructor__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8391:1: rule__ListConstructor__Group__3__Impl : ( '|' ) ;
    public final void rule__ListConstructor__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8395:1: ( ( '|' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8396:1: ( '|' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8396:1: ( '|' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8397:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getVerticalLineKeyword_3()); 
            }
            match(input,68,FOLLOW_68_in_rule__ListConstructor__Group__3__Impl17248); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getVerticalLineKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__3__Impl"


    // $ANTLR start "rule__ListConstructor__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8410:1: rule__ListConstructor__Group__4 : rule__ListConstructor__Group__4__Impl rule__ListConstructor__Group__5 ;
    public final void rule__ListConstructor__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8414:1: ( rule__ListConstructor__Group__4__Impl rule__ListConstructor__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8415:2: rule__ListConstructor__Group__4__Impl rule__ListConstructor__Group__5
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__4__Impl_in_rule__ListConstructor__Group__417279);
            rule__ListConstructor__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ListConstructor__Group__5_in_rule__ListConstructor__Group__417282);
            rule__ListConstructor__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__4"


    // $ANTLR start "rule__ListConstructor__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8422:1: rule__ListConstructor__Group__4__Impl : ( ( rule__ListConstructor__GuardAssignment_4 ) ) ;
    public final void rule__ListConstructor__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8426:1: ( ( ( rule__ListConstructor__GuardAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8427:1: ( ( rule__ListConstructor__GuardAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8427:1: ( ( rule__ListConstructor__GuardAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8428:1: ( rule__ListConstructor__GuardAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getGuardAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8429:1: ( rule__ListConstructor__GuardAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8429:2: rule__ListConstructor__GuardAssignment_4
            {
            pushFollow(FOLLOW_rule__ListConstructor__GuardAssignment_4_in_rule__ListConstructor__Group__4__Impl17309);
            rule__ListConstructor__GuardAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getGuardAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__4__Impl"


    // $ANTLR start "rule__ListConstructor__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8439:1: rule__ListConstructor__Group__5 : rule__ListConstructor__Group__5__Impl ;
    public final void rule__ListConstructor__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8443:1: ( rule__ListConstructor__Group__5__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8444:2: rule__ListConstructor__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__ListConstructor__Group__5__Impl_in_rule__ListConstructor__Group__517339);
            rule__ListConstructor__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__5"


    // $ANTLR start "rule__ListConstructor__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8450:1: rule__ListConstructor__Group__5__Impl : ( ')' ) ;
    public final void rule__ListConstructor__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8454:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8455:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8455:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8456:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,43,FOLLOW_43_in_rule__ListConstructor__Group__5__Impl17367); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__Group__5__Impl"


    // $ANTLR start "rule__NOT__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8481:1: rule__NOT__Group__0 : rule__NOT__Group__0__Impl rule__NOT__Group__1 ;
    public final void rule__NOT__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8485:1: ( rule__NOT__Group__0__Impl rule__NOT__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8486:2: rule__NOT__Group__0__Impl rule__NOT__Group__1
            {
            pushFollow(FOLLOW_rule__NOT__Group__0__Impl_in_rule__NOT__Group__017410);
            rule__NOT__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__NOT__Group__1_in_rule__NOT__Group__017413);
            rule__NOT__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NOT__Group__0"


    // $ANTLR start "rule__NOT__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8493:1: rule__NOT__Group__0__Impl : ( ( rule__NOT__OpAssignment_0 )? ) ;
    public final void rule__NOT__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8497:1: ( ( ( rule__NOT__OpAssignment_0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8498:1: ( ( rule__NOT__OpAssignment_0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8498:1: ( ( rule__NOT__OpAssignment_0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8499:1: ( rule__NOT__OpAssignment_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTAccess().getOpAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8500:1: ( rule__NOT__OpAssignment_0 )?
            int alt57=2;
            int LA57_0 = input.LA(1);

            if ( (LA57_0==84) ) {
                alt57=1;
            }
            switch (alt57) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8500:2: rule__NOT__OpAssignment_0
                    {
                    pushFollow(FOLLOW_rule__NOT__OpAssignment_0_in_rule__NOT__Group__0__Impl17440);
                    rule__NOT__OpAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTAccess().getOpAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NOT__Group__0__Impl"


    // $ANTLR start "rule__NOT__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8510:1: rule__NOT__Group__1 : rule__NOT__Group__1__Impl ;
    public final void rule__NOT__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8514:1: ( rule__NOT__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8515:2: rule__NOT__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__NOT__Group__1__Impl_in_rule__NOT__Group__117471);
            rule__NOT__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NOT__Group__1"


    // $ANTLR start "rule__NOT__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8521:1: rule__NOT__Group__1__Impl : ( ( rule__NOT__FormulaAssignment_1 ) ) ;
    public final void rule__NOT__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8525:1: ( ( ( rule__NOT__FormulaAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8526:1: ( ( rule__NOT__FormulaAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8526:1: ( ( rule__NOT__FormulaAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8527:1: ( rule__NOT__FormulaAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTAccess().getFormulaAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8528:1: ( rule__NOT__FormulaAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8528:2: rule__NOT__FormulaAssignment_1
            {
            pushFollow(FOLLOW_rule__NOT__FormulaAssignment_1_in_rule__NOT__Group__1__Impl17498);
            rule__NOT__FormulaAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTAccess().getFormulaAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NOT__Group__1__Impl"


    // $ANTLR start "rule__Addition__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8542:1: rule__Addition__Group__0 : rule__Addition__Group__0__Impl rule__Addition__Group__1 ;
    public final void rule__Addition__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8546:1: ( rule__Addition__Group__0__Impl rule__Addition__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8547:2: rule__Addition__Group__0__Impl rule__Addition__Group__1
            {
            pushFollow(FOLLOW_rule__Addition__Group__0__Impl_in_rule__Addition__Group__017532);
            rule__Addition__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Addition__Group__1_in_rule__Addition__Group__017535);
            rule__Addition__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group__0"


    // $ANTLR start "rule__Addition__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8554:1: rule__Addition__Group__0__Impl : ( ruleMultiplication ) ;
    public final void rule__Addition__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8558:1: ( ( ruleMultiplication ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8559:1: ( ruleMultiplication )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8559:1: ( ruleMultiplication )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8560:1: ruleMultiplication
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_ruleMultiplication_in_rule__Addition__Group__0__Impl17562);
            ruleMultiplication();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getMultiplicationParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group__0__Impl"


    // $ANTLR start "rule__Addition__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8571:1: rule__Addition__Group__1 : rule__Addition__Group__1__Impl ;
    public final void rule__Addition__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8575:1: ( rule__Addition__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8576:2: rule__Addition__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Addition__Group__1__Impl_in_rule__Addition__Group__117591);
            rule__Addition__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group__1"


    // $ANTLR start "rule__Addition__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8582:1: rule__Addition__Group__1__Impl : ( ( rule__Addition__Group_1__0 )* ) ;
    public final void rule__Addition__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8586:1: ( ( ( rule__Addition__Group_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8587:1: ( ( rule__Addition__Group_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8587:1: ( ( rule__Addition__Group_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8588:1: ( rule__Addition__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getGroup_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8589:1: ( rule__Addition__Group_1__0 )*
            loop58:
            do {
                int alt58=2;
                int LA58_0 = input.LA(1);

                if ( (LA58_0==27) ) {
                    int LA58_2 = input.LA(2);

                    if ( (synpred104_InternalAstra()) ) {
                        alt58=1;
                    }


                }
                else if ( (LA58_0==28) ) {
                    int LA58_3 = input.LA(2);

                    if ( (synpred104_InternalAstra()) ) {
                        alt58=1;
                    }


                }


                switch (alt58) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8589:2: rule__Addition__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Addition__Group_1__0_in_rule__Addition__Group__1__Impl17618);
            	    rule__Addition__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop58;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group__1__Impl"


    // $ANTLR start "rule__Addition__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8603:1: rule__Addition__Group_1__0 : rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 ;
    public final void rule__Addition__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8607:1: ( rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8608:2: rule__Addition__Group_1__0__Impl rule__Addition__Group_1__1
            {
            pushFollow(FOLLOW_rule__Addition__Group_1__0__Impl_in_rule__Addition__Group_1__017653);
            rule__Addition__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Addition__Group_1__1_in_rule__Addition__Group_1__017656);
            rule__Addition__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group_1__0"


    // $ANTLR start "rule__Addition__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8615:1: rule__Addition__Group_1__0__Impl : ( () ) ;
    public final void rule__Addition__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8619:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8620:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8620:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8621:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getOperationLeftAction_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8622:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8624:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getOperationLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group_1__0__Impl"


    // $ANTLR start "rule__Addition__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8634:1: rule__Addition__Group_1__1 : rule__Addition__Group_1__1__Impl rule__Addition__Group_1__2 ;
    public final void rule__Addition__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8638:1: ( rule__Addition__Group_1__1__Impl rule__Addition__Group_1__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8639:2: rule__Addition__Group_1__1__Impl rule__Addition__Group_1__2
            {
            pushFollow(FOLLOW_rule__Addition__Group_1__1__Impl_in_rule__Addition__Group_1__117714);
            rule__Addition__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Addition__Group_1__2_in_rule__Addition__Group_1__117717);
            rule__Addition__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group_1__1"


    // $ANTLR start "rule__Addition__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8646:1: rule__Addition__Group_1__1__Impl : ( ( rule__Addition__OperationAssignment_1_1 ) ) ;
    public final void rule__Addition__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8650:1: ( ( ( rule__Addition__OperationAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8651:1: ( ( rule__Addition__OperationAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8651:1: ( ( rule__Addition__OperationAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8652:1: ( rule__Addition__OperationAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getOperationAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8653:1: ( rule__Addition__OperationAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8653:2: rule__Addition__OperationAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Addition__OperationAssignment_1_1_in_rule__Addition__Group_1__1__Impl17744);
            rule__Addition__OperationAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getOperationAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group_1__1__Impl"


    // $ANTLR start "rule__Addition__Group_1__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8663:1: rule__Addition__Group_1__2 : rule__Addition__Group_1__2__Impl ;
    public final void rule__Addition__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8667:1: ( rule__Addition__Group_1__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8668:2: rule__Addition__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__Addition__Group_1__2__Impl_in_rule__Addition__Group_1__217774);
            rule__Addition__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group_1__2"


    // $ANTLR start "rule__Addition__Group_1__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8674:1: rule__Addition__Group_1__2__Impl : ( ( rule__Addition__RightAssignment_1_2 ) ) ;
    public final void rule__Addition__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8678:1: ( ( ( rule__Addition__RightAssignment_1_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8679:1: ( ( rule__Addition__RightAssignment_1_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8679:1: ( ( rule__Addition__RightAssignment_1_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8680:1: ( rule__Addition__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getRightAssignment_1_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8681:1: ( rule__Addition__RightAssignment_1_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8681:2: rule__Addition__RightAssignment_1_2
            {
            pushFollow(FOLLOW_rule__Addition__RightAssignment_1_2_in_rule__Addition__Group_1__2__Impl17801);
            rule__Addition__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__Group_1__2__Impl"


    // $ANTLR start "rule__Multiplication__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8697:1: rule__Multiplication__Group__0 : rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 ;
    public final void rule__Multiplication__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8701:1: ( rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8702:2: rule__Multiplication__Group__0__Impl rule__Multiplication__Group__1
            {
            pushFollow(FOLLOW_rule__Multiplication__Group__0__Impl_in_rule__Multiplication__Group__017837);
            rule__Multiplication__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Multiplication__Group__1_in_rule__Multiplication__Group__017840);
            rule__Multiplication__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group__0"


    // $ANTLR start "rule__Multiplication__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8709:1: rule__Multiplication__Group__0__Impl : ( rulePrimary ) ;
    public final void rule__Multiplication__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8713:1: ( ( rulePrimary ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8714:1: ( rulePrimary )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8714:1: ( rulePrimary )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8715:1: rulePrimary
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getPrimaryParserRuleCall_0()); 
            }
            pushFollow(FOLLOW_rulePrimary_in_rule__Multiplication__Group__0__Impl17867);
            rulePrimary();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getPrimaryParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group__0__Impl"


    // $ANTLR start "rule__Multiplication__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8726:1: rule__Multiplication__Group__1 : rule__Multiplication__Group__1__Impl ;
    public final void rule__Multiplication__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8730:1: ( rule__Multiplication__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8731:2: rule__Multiplication__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Multiplication__Group__1__Impl_in_rule__Multiplication__Group__117896);
            rule__Multiplication__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group__1"


    // $ANTLR start "rule__Multiplication__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8737:1: rule__Multiplication__Group__1__Impl : ( ( rule__Multiplication__Group_1__0 )* ) ;
    public final void rule__Multiplication__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8741:1: ( ( ( rule__Multiplication__Group_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8742:1: ( ( rule__Multiplication__Group_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8742:1: ( ( rule__Multiplication__Group_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8743:1: ( rule__Multiplication__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getGroup_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8744:1: ( rule__Multiplication__Group_1__0 )*
            loop59:
            do {
                int alt59=2;
                switch ( input.LA(1) ) {
                case 29:
                    {
                    int LA59_2 = input.LA(2);

                    if ( (synpred105_InternalAstra()) ) {
                        alt59=1;
                    }


                    }
                    break;
                case 30:
                    {
                    int LA59_3 = input.LA(2);

                    if ( (synpred105_InternalAstra()) ) {
                        alt59=1;
                    }


                    }
                    break;
                case 31:
                    {
                    int LA59_4 = input.LA(2);

                    if ( (synpred105_InternalAstra()) ) {
                        alt59=1;
                    }


                    }
                    break;

                }

                switch (alt59) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8744:2: rule__Multiplication__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Multiplication__Group_1__0_in_rule__Multiplication__Group__1__Impl17923);
            	    rule__Multiplication__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop59;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group__1__Impl"


    // $ANTLR start "rule__Multiplication__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8758:1: rule__Multiplication__Group_1__0 : rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 ;
    public final void rule__Multiplication__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8762:1: ( rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8763:2: rule__Multiplication__Group_1__0__Impl rule__Multiplication__Group_1__1
            {
            pushFollow(FOLLOW_rule__Multiplication__Group_1__0__Impl_in_rule__Multiplication__Group_1__017958);
            rule__Multiplication__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Multiplication__Group_1__1_in_rule__Multiplication__Group_1__017961);
            rule__Multiplication__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group_1__0"


    // $ANTLR start "rule__Multiplication__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8770:1: rule__Multiplication__Group_1__0__Impl : ( () ) ;
    public final void rule__Multiplication__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8774:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8775:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8775:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8776:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getOperationLeftAction_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8777:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8779:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getOperationLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group_1__0__Impl"


    // $ANTLR start "rule__Multiplication__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8789:1: rule__Multiplication__Group_1__1 : rule__Multiplication__Group_1__1__Impl rule__Multiplication__Group_1__2 ;
    public final void rule__Multiplication__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8793:1: ( rule__Multiplication__Group_1__1__Impl rule__Multiplication__Group_1__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8794:2: rule__Multiplication__Group_1__1__Impl rule__Multiplication__Group_1__2
            {
            pushFollow(FOLLOW_rule__Multiplication__Group_1__1__Impl_in_rule__Multiplication__Group_1__118019);
            rule__Multiplication__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Multiplication__Group_1__2_in_rule__Multiplication__Group_1__118022);
            rule__Multiplication__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group_1__1"


    // $ANTLR start "rule__Multiplication__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8801:1: rule__Multiplication__Group_1__1__Impl : ( ( rule__Multiplication__OperationAssignment_1_1 ) ) ;
    public final void rule__Multiplication__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8805:1: ( ( ( rule__Multiplication__OperationAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8806:1: ( ( rule__Multiplication__OperationAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8806:1: ( ( rule__Multiplication__OperationAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8807:1: ( rule__Multiplication__OperationAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getOperationAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8808:1: ( rule__Multiplication__OperationAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8808:2: rule__Multiplication__OperationAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Multiplication__OperationAssignment_1_1_in_rule__Multiplication__Group_1__1__Impl18049);
            rule__Multiplication__OperationAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getOperationAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group_1__1__Impl"


    // $ANTLR start "rule__Multiplication__Group_1__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8818:1: rule__Multiplication__Group_1__2 : rule__Multiplication__Group_1__2__Impl ;
    public final void rule__Multiplication__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8822:1: ( rule__Multiplication__Group_1__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8823:2: rule__Multiplication__Group_1__2__Impl
            {
            pushFollow(FOLLOW_rule__Multiplication__Group_1__2__Impl_in_rule__Multiplication__Group_1__218079);
            rule__Multiplication__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group_1__2"


    // $ANTLR start "rule__Multiplication__Group_1__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8829:1: rule__Multiplication__Group_1__2__Impl : ( ( rule__Multiplication__RightAssignment_1_2 ) ) ;
    public final void rule__Multiplication__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8833:1: ( ( ( rule__Multiplication__RightAssignment_1_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8834:1: ( ( rule__Multiplication__RightAssignment_1_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8834:1: ( ( rule__Multiplication__RightAssignment_1_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8835:1: ( rule__Multiplication__RightAssignment_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8836:1: ( rule__Multiplication__RightAssignment_1_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8836:2: rule__Multiplication__RightAssignment_1_2
            {
            pushFollow(FOLLOW_rule__Multiplication__RightAssignment_1_2_in_rule__Multiplication__Group_1__2__Impl18106);
            rule__Multiplication__RightAssignment_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__Group_1__2__Impl"


    // $ANTLR start "rule__Primary__Group_0__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8852:1: rule__Primary__Group_0__0 : rule__Primary__Group_0__0__Impl rule__Primary__Group_0__1 ;
    public final void rule__Primary__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8856:1: ( rule__Primary__Group_0__0__Impl rule__Primary__Group_0__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8857:2: rule__Primary__Group_0__0__Impl rule__Primary__Group_0__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_0__0__Impl_in_rule__Primary__Group_0__018142);
            rule__Primary__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_0__1_in_rule__Primary__Group_0__018145);
            rule__Primary__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_0__0"


    // $ANTLR start "rule__Primary__Group_0__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8864:1: rule__Primary__Group_0__0__Impl : ( () ) ;
    public final void rule__Primary__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8868:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8869:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8869:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8870:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getCountLiteralAction_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8871:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8873:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getCountLiteralAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_0__0__Impl"


    // $ANTLR start "rule__Primary__Group_0__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8883:1: rule__Primary__Group_0__1 : rule__Primary__Group_0__1__Impl ;
    public final void rule__Primary__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8887:1: ( rule__Primary__Group_0__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8888:2: rule__Primary__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_0__1__Impl_in_rule__Primary__Group_0__118203);
            rule__Primary__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_0__1"


    // $ANTLR start "rule__Primary__Group_0__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8894:1: rule__Primary__Group_0__1__Impl : ( ( rule__Primary__ValueAssignment_0_1 ) ) ;
    public final void rule__Primary__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8898:1: ( ( ( rule__Primary__ValueAssignment_0_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8899:1: ( ( rule__Primary__ValueAssignment_0_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8899:1: ( ( rule__Primary__ValueAssignment_0_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8900:1: ( rule__Primary__ValueAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_0_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8901:1: ( rule__Primary__ValueAssignment_0_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8901:2: rule__Primary__ValueAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_0_1_in_rule__Primary__Group_0__1__Impl18230);
            rule__Primary__ValueAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_0__1__Impl"


    // $ANTLR start "rule__Primary__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8915:1: rule__Primary__Group_1__0 : rule__Primary__Group_1__0__Impl rule__Primary__Group_1__1 ;
    public final void rule__Primary__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8919:1: ( rule__Primary__Group_1__0__Impl rule__Primary__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8920:2: rule__Primary__Group_1__0__Impl rule__Primary__Group_1__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_1__0__Impl_in_rule__Primary__Group_1__018264);
            rule__Primary__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_1__1_in_rule__Primary__Group_1__018267);
            rule__Primary__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_1__0"


    // $ANTLR start "rule__Primary__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8927:1: rule__Primary__Group_1__0__Impl : ( () ) ;
    public final void rule__Primary__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8931:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8932:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8932:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8933:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getLibraryTermLiteralAction_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8934:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8936:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getLibraryTermLiteralAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_1__0__Impl"


    // $ANTLR start "rule__Primary__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8946:1: rule__Primary__Group_1__1 : rule__Primary__Group_1__1__Impl ;
    public final void rule__Primary__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8950:1: ( rule__Primary__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8951:2: rule__Primary__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_1__1__Impl_in_rule__Primary__Group_1__118325);
            rule__Primary__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_1__1"


    // $ANTLR start "rule__Primary__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8957:1: rule__Primary__Group_1__1__Impl : ( ( rule__Primary__ValueAssignment_1_1 ) ) ;
    public final void rule__Primary__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8961:1: ( ( ( rule__Primary__ValueAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8962:1: ( ( rule__Primary__ValueAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8962:1: ( ( rule__Primary__ValueAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8963:1: ( rule__Primary__ValueAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8964:1: ( rule__Primary__ValueAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8964:2: rule__Primary__ValueAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_1_1_in_rule__Primary__Group_1__1__Impl18352);
            rule__Primary__ValueAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_1__1__Impl"


    // $ANTLR start "rule__Primary__Group_2__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8978:1: rule__Primary__Group_2__0 : rule__Primary__Group_2__0__Impl rule__Primary__Group_2__1 ;
    public final void rule__Primary__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8982:1: ( rule__Primary__Group_2__0__Impl rule__Primary__Group_2__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8983:2: rule__Primary__Group_2__0__Impl rule__Primary__Group_2__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_2__0__Impl_in_rule__Primary__Group_2__018386);
            rule__Primary__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_2__1_in_rule__Primary__Group_2__018389);
            rule__Primary__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_2__0"


    // $ANTLR start "rule__Primary__Group_2__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8990:1: rule__Primary__Group_2__0__Impl : ( () ) ;
    public final void rule__Primary__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8994:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8995:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8995:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8996:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getIDENTIFIERLiteralAction_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8997:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8999:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getIDENTIFIERLiteralAction_2_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_2__0__Impl"


    // $ANTLR start "rule__Primary__Group_2__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9009:1: rule__Primary__Group_2__1 : rule__Primary__Group_2__1__Impl ;
    public final void rule__Primary__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9013:1: ( rule__Primary__Group_2__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9014:2: rule__Primary__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_2__1__Impl_in_rule__Primary__Group_2__118447);
            rule__Primary__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_2__1"


    // $ANTLR start "rule__Primary__Group_2__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9020:1: rule__Primary__Group_2__1__Impl : ( ( rule__Primary__ValueAssignment_2_1 ) ) ;
    public final void rule__Primary__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9024:1: ( ( ( rule__Primary__ValueAssignment_2_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9025:1: ( ( rule__Primary__ValueAssignment_2_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9025:1: ( ( rule__Primary__ValueAssignment_2_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9026:1: ( rule__Primary__ValueAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_2_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9027:1: ( rule__Primary__ValueAssignment_2_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9027:2: rule__Primary__ValueAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_2_1_in_rule__Primary__Group_2__1__Impl18474);
            rule__Primary__ValueAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_2__1__Impl"


    // $ANTLR start "rule__Primary__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9041:1: rule__Primary__Group_3__0 : rule__Primary__Group_3__0__Impl rule__Primary__Group_3__1 ;
    public final void rule__Primary__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9045:1: ( rule__Primary__Group_3__0__Impl rule__Primary__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9046:2: rule__Primary__Group_3__0__Impl rule__Primary__Group_3__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_3__0__Impl_in_rule__Primary__Group_3__018508);
            rule__Primary__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_3__1_in_rule__Primary__Group_3__018511);
            rule__Primary__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_3__0"


    // $ANTLR start "rule__Primary__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9053:1: rule__Primary__Group_3__0__Impl : ( () ) ;
    public final void rule__Primary__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9057:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9058:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9058:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9059:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getVariableLiteralAction_3_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9060:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9062:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getVariableLiteralAction_3_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_3__0__Impl"


    // $ANTLR start "rule__Primary__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9072:1: rule__Primary__Group_3__1 : rule__Primary__Group_3__1__Impl ;
    public final void rule__Primary__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9076:1: ( rule__Primary__Group_3__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9077:2: rule__Primary__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_3__1__Impl_in_rule__Primary__Group_3__118569);
            rule__Primary__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_3__1"


    // $ANTLR start "rule__Primary__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9083:1: rule__Primary__Group_3__1__Impl : ( ( rule__Primary__ValueAssignment_3_1 ) ) ;
    public final void rule__Primary__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9087:1: ( ( ( rule__Primary__ValueAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9088:1: ( ( rule__Primary__ValueAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9088:1: ( ( rule__Primary__ValueAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9089:1: ( rule__Primary__ValueAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9090:1: ( rule__Primary__ValueAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9090:2: rule__Primary__ValueAssignment_3_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_3_1_in_rule__Primary__Group_3__1__Impl18596);
            rule__Primary__ValueAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_3__1__Impl"


    // $ANTLR start "rule__Primary__Group_4__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9104:1: rule__Primary__Group_4__0 : rule__Primary__Group_4__0__Impl rule__Primary__Group_4__1 ;
    public final void rule__Primary__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9108:1: ( rule__Primary__Group_4__0__Impl rule__Primary__Group_4__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9109:2: rule__Primary__Group_4__0__Impl rule__Primary__Group_4__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_4__0__Impl_in_rule__Primary__Group_4__018630);
            rule__Primary__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_4__1_in_rule__Primary__Group_4__018633);
            rule__Primary__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_4__0"


    // $ANTLR start "rule__Primary__Group_4__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9116:1: rule__Primary__Group_4__0__Impl : ( () ) ;
    public final void rule__Primary__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9120:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9121:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9121:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9122:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getNumberLiteralAction_4_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9123:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9125:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getNumberLiteralAction_4_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_4__0__Impl"


    // $ANTLR start "rule__Primary__Group_4__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9135:1: rule__Primary__Group_4__1 : rule__Primary__Group_4__1__Impl ;
    public final void rule__Primary__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9139:1: ( rule__Primary__Group_4__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9140:2: rule__Primary__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_4__1__Impl_in_rule__Primary__Group_4__118691);
            rule__Primary__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_4__1"


    // $ANTLR start "rule__Primary__Group_4__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9146:1: rule__Primary__Group_4__1__Impl : ( ( rule__Primary__ValueAssignment_4_1 ) ) ;
    public final void rule__Primary__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9150:1: ( ( ( rule__Primary__ValueAssignment_4_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9151:1: ( ( rule__Primary__ValueAssignment_4_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9151:1: ( ( rule__Primary__ValueAssignment_4_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9152:1: ( rule__Primary__ValueAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_4_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9153:1: ( rule__Primary__ValueAssignment_4_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9153:2: rule__Primary__ValueAssignment_4_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_4_1_in_rule__Primary__Group_4__1__Impl18718);
            rule__Primary__ValueAssignment_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_4__1__Impl"


    // $ANTLR start "rule__Primary__Group_5__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9167:1: rule__Primary__Group_5__0 : rule__Primary__Group_5__0__Impl rule__Primary__Group_5__1 ;
    public final void rule__Primary__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9171:1: ( rule__Primary__Group_5__0__Impl rule__Primary__Group_5__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9172:2: rule__Primary__Group_5__0__Impl rule__Primary__Group_5__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_5__0__Impl_in_rule__Primary__Group_5__018752);
            rule__Primary__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_5__1_in_rule__Primary__Group_5__018755);
            rule__Primary__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_5__0"


    // $ANTLR start "rule__Primary__Group_5__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9179:1: rule__Primary__Group_5__0__Impl : ( () ) ;
    public final void rule__Primary__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9183:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9184:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9184:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9185:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getSTRINGLiteralAction_5_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9186:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9188:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getSTRINGLiteralAction_5_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_5__0__Impl"


    // $ANTLR start "rule__Primary__Group_5__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9198:1: rule__Primary__Group_5__1 : rule__Primary__Group_5__1__Impl ;
    public final void rule__Primary__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9202:1: ( rule__Primary__Group_5__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9203:2: rule__Primary__Group_5__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_5__1__Impl_in_rule__Primary__Group_5__118813);
            rule__Primary__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_5__1"


    // $ANTLR start "rule__Primary__Group_5__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9209:1: rule__Primary__Group_5__1__Impl : ( ( rule__Primary__ValueAssignment_5_1 ) ) ;
    public final void rule__Primary__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9213:1: ( ( ( rule__Primary__ValueAssignment_5_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9214:1: ( ( rule__Primary__ValueAssignment_5_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9214:1: ( ( rule__Primary__ValueAssignment_5_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9215:1: ( rule__Primary__ValueAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_5_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9216:1: ( rule__Primary__ValueAssignment_5_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9216:2: rule__Primary__ValueAssignment_5_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_5_1_in_rule__Primary__Group_5__1__Impl18840);
            rule__Primary__ValueAssignment_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_5__1__Impl"


    // $ANTLR start "rule__Primary__Group_6__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9230:1: rule__Primary__Group_6__0 : rule__Primary__Group_6__0__Impl rule__Primary__Group_6__1 ;
    public final void rule__Primary__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9234:1: ( rule__Primary__Group_6__0__Impl rule__Primary__Group_6__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9235:2: rule__Primary__Group_6__0__Impl rule__Primary__Group_6__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_6__0__Impl_in_rule__Primary__Group_6__018874);
            rule__Primary__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_6__1_in_rule__Primary__Group_6__018877);
            rule__Primary__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_6__0"


    // $ANTLR start "rule__Primary__Group_6__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9242:1: rule__Primary__Group_6__0__Impl : ( '(' ) ;
    public final void rule__Primary__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9246:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9247:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9247:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9248:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getLeftParenthesisKeyword_6_0()); 
            }
            match(input,42,FOLLOW_42_in_rule__Primary__Group_6__0__Impl18905); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getLeftParenthesisKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_6__0__Impl"


    // $ANTLR start "rule__Primary__Group_6__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9261:1: rule__Primary__Group_6__1 : rule__Primary__Group_6__1__Impl rule__Primary__Group_6__2 ;
    public final void rule__Primary__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9265:1: ( rule__Primary__Group_6__1__Impl rule__Primary__Group_6__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9266:2: rule__Primary__Group_6__1__Impl rule__Primary__Group_6__2
            {
            pushFollow(FOLLOW_rule__Primary__Group_6__1__Impl_in_rule__Primary__Group_6__118936);
            rule__Primary__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_6__2_in_rule__Primary__Group_6__118939);
            rule__Primary__Group_6__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_6__1"


    // $ANTLR start "rule__Primary__Group_6__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9273:1: rule__Primary__Group_6__1__Impl : ( ruleAddition ) ;
    public final void rule__Primary__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9277:1: ( ( ruleAddition ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9278:1: ( ruleAddition )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9278:1: ( ruleAddition )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9279:1: ruleAddition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getAdditionParserRuleCall_6_1()); 
            }
            pushFollow(FOLLOW_ruleAddition_in_rule__Primary__Group_6__1__Impl18966);
            ruleAddition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getAdditionParserRuleCall_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_6__1__Impl"


    // $ANTLR start "rule__Primary__Group_6__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9290:1: rule__Primary__Group_6__2 : rule__Primary__Group_6__2__Impl ;
    public final void rule__Primary__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9294:1: ( rule__Primary__Group_6__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9295:2: rule__Primary__Group_6__2__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_6__2__Impl_in_rule__Primary__Group_6__218995);
            rule__Primary__Group_6__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_6__2"


    // $ANTLR start "rule__Primary__Group_6__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9301:1: rule__Primary__Group_6__2__Impl : ( ')' ) ;
    public final void rule__Primary__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9305:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9306:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9306:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9307:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getRightParenthesisKeyword_6_2()); 
            }
            match(input,43,FOLLOW_43_in_rule__Primary__Group_6__2__Impl19023); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getRightParenthesisKeyword_6_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_6__2__Impl"


    // $ANTLR start "rule__Primary__Group_7__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9326:1: rule__Primary__Group_7__0 : rule__Primary__Group_7__0__Impl rule__Primary__Group_7__1 ;
    public final void rule__Primary__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9330:1: ( rule__Primary__Group_7__0__Impl rule__Primary__Group_7__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9331:2: rule__Primary__Group_7__0__Impl rule__Primary__Group_7__1
            {
            pushFollow(FOLLOW_rule__Primary__Group_7__0__Impl_in_rule__Primary__Group_7__019060);
            rule__Primary__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Primary__Group_7__1_in_rule__Primary__Group_7__019063);
            rule__Primary__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_7__0"


    // $ANTLR start "rule__Primary__Group_7__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9338:1: rule__Primary__Group_7__0__Impl : ( () ) ;
    public final void rule__Primary__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9342:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9343:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9343:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9344:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getListLiteralAction_7_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9345:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9347:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getListLiteralAction_7_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_7__0__Impl"


    // $ANTLR start "rule__Primary__Group_7__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9357:1: rule__Primary__Group_7__1 : rule__Primary__Group_7__1__Impl ;
    public final void rule__Primary__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9361:1: ( rule__Primary__Group_7__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9362:2: rule__Primary__Group_7__1__Impl
            {
            pushFollow(FOLLOW_rule__Primary__Group_7__1__Impl_in_rule__Primary__Group_7__119121);
            rule__Primary__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_7__1"


    // $ANTLR start "rule__Primary__Group_7__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9368:1: rule__Primary__Group_7__1__Impl : ( ( rule__Primary__ValueAssignment_7_1 ) ) ;
    public final void rule__Primary__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9372:1: ( ( ( rule__Primary__ValueAssignment_7_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9373:1: ( ( rule__Primary__ValueAssignment_7_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9373:1: ( ( rule__Primary__ValueAssignment_7_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9374:1: ( rule__Primary__ValueAssignment_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueAssignment_7_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9375:1: ( rule__Primary__ValueAssignment_7_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9375:2: rule__Primary__ValueAssignment_7_1
            {
            pushFollow(FOLLOW_rule__Primary__ValueAssignment_7_1_in_rule__Primary__Group_7__1__Impl19148);
            rule__Primary__ValueAssignment_7_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueAssignment_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__Group_7__1__Impl"


    // $ANTLR start "rule__LibraryFormula__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9389:1: rule__LibraryFormula__Group__0 : rule__LibraryFormula__Group__0__Impl rule__LibraryFormula__Group__1 ;
    public final void rule__LibraryFormula__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9393:1: ( rule__LibraryFormula__Group__0__Impl rule__LibraryFormula__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9394:2: rule__LibraryFormula__Group__0__Impl rule__LibraryFormula__Group__1
            {
            pushFollow(FOLLOW_rule__LibraryFormula__Group__0__Impl_in_rule__LibraryFormula__Group__019182);
            rule__LibraryFormula__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LibraryFormula__Group__1_in_rule__LibraryFormula__Group__019185);
            rule__LibraryFormula__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__Group__0"


    // $ANTLR start "rule__LibraryFormula__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9401:1: rule__LibraryFormula__Group__0__Impl : ( ( rule__LibraryFormula__ModuleAssignment_0 ) ) ;
    public final void rule__LibraryFormula__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9405:1: ( ( ( rule__LibraryFormula__ModuleAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9406:1: ( ( rule__LibraryFormula__ModuleAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9406:1: ( ( rule__LibraryFormula__ModuleAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9407:1: ( rule__LibraryFormula__ModuleAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaAccess().getModuleAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9408:1: ( rule__LibraryFormula__ModuleAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9408:2: rule__LibraryFormula__ModuleAssignment_0
            {
            pushFollow(FOLLOW_rule__LibraryFormula__ModuleAssignment_0_in_rule__LibraryFormula__Group__0__Impl19212);
            rule__LibraryFormula__ModuleAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaAccess().getModuleAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__Group__0__Impl"


    // $ANTLR start "rule__LibraryFormula__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9418:1: rule__LibraryFormula__Group__1 : rule__LibraryFormula__Group__1__Impl rule__LibraryFormula__Group__2 ;
    public final void rule__LibraryFormula__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9422:1: ( rule__LibraryFormula__Group__1__Impl rule__LibraryFormula__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9423:2: rule__LibraryFormula__Group__1__Impl rule__LibraryFormula__Group__2
            {
            pushFollow(FOLLOW_rule__LibraryFormula__Group__1__Impl_in_rule__LibraryFormula__Group__119242);
            rule__LibraryFormula__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LibraryFormula__Group__2_in_rule__LibraryFormula__Group__119245);
            rule__LibraryFormula__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__Group__1"


    // $ANTLR start "rule__LibraryFormula__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9430:1: rule__LibraryFormula__Group__1__Impl : ( '.' ) ;
    public final void rule__LibraryFormula__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9434:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9435:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9435:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9436:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaAccess().getFullStopKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__LibraryFormula__Group__1__Impl19273); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__Group__1__Impl"


    // $ANTLR start "rule__LibraryFormula__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9449:1: rule__LibraryFormula__Group__2 : rule__LibraryFormula__Group__2__Impl ;
    public final void rule__LibraryFormula__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9453:1: ( rule__LibraryFormula__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9454:2: rule__LibraryFormula__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__LibraryFormula__Group__2__Impl_in_rule__LibraryFormula__Group__219304);
            rule__LibraryFormula__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__Group__2"


    // $ANTLR start "rule__LibraryFormula__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9460:1: rule__LibraryFormula__Group__2__Impl : ( ( rule__LibraryFormula__ActionAssignment_2 ) ) ;
    public final void rule__LibraryFormula__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9464:1: ( ( ( rule__LibraryFormula__ActionAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9465:1: ( ( rule__LibraryFormula__ActionAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9465:1: ( ( rule__LibraryFormula__ActionAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9466:1: ( rule__LibraryFormula__ActionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaAccess().getActionAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9467:1: ( rule__LibraryFormula__ActionAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9467:2: rule__LibraryFormula__ActionAssignment_2
            {
            pushFollow(FOLLOW_rule__LibraryFormula__ActionAssignment_2_in_rule__LibraryFormula__Group__2__Impl19331);
            rule__LibraryFormula__ActionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaAccess().getActionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__Group__2__Impl"


    // $ANTLR start "rule__Predicate__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9483:1: rule__Predicate__Group__0 : rule__Predicate__Group__0__Impl rule__Predicate__Group__1 ;
    public final void rule__Predicate__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9487:1: ( rule__Predicate__Group__0__Impl rule__Predicate__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9488:2: rule__Predicate__Group__0__Impl rule__Predicate__Group__1
            {
            pushFollow(FOLLOW_rule__Predicate__Group__0__Impl_in_rule__Predicate__Group__019367);
            rule__Predicate__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Predicate__Group__1_in_rule__Predicate__Group__019370);
            rule__Predicate__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group__0"


    // $ANTLR start "rule__Predicate__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9495:1: rule__Predicate__Group__0__Impl : ( () ) ;
    public final void rule__Predicate__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9499:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9500:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9500:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9501:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getPredicateAction_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9502:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9504:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getPredicateAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group__0__Impl"


    // $ANTLR start "rule__Predicate__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9514:1: rule__Predicate__Group__1 : rule__Predicate__Group__1__Impl rule__Predicate__Group__2 ;
    public final void rule__Predicate__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9518:1: ( rule__Predicate__Group__1__Impl rule__Predicate__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9519:2: rule__Predicate__Group__1__Impl rule__Predicate__Group__2
            {
            pushFollow(FOLLOW_rule__Predicate__Group__1__Impl_in_rule__Predicate__Group__119428);
            rule__Predicate__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Predicate__Group__2_in_rule__Predicate__Group__119431);
            rule__Predicate__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group__1"


    // $ANTLR start "rule__Predicate__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9526:1: rule__Predicate__Group__1__Impl : ( ( rule__Predicate__IdAssignment_1 ) ) ;
    public final void rule__Predicate__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9530:1: ( ( ( rule__Predicate__IdAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9531:1: ( ( rule__Predicate__IdAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9531:1: ( ( rule__Predicate__IdAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9532:1: ( rule__Predicate__IdAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getIdAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9533:1: ( rule__Predicate__IdAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9533:2: rule__Predicate__IdAssignment_1
            {
            pushFollow(FOLLOW_rule__Predicate__IdAssignment_1_in_rule__Predicate__Group__1__Impl19458);
            rule__Predicate__IdAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getIdAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group__1__Impl"


    // $ANTLR start "rule__Predicate__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9543:1: rule__Predicate__Group__2 : rule__Predicate__Group__2__Impl ;
    public final void rule__Predicate__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9547:1: ( rule__Predicate__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9548:2: rule__Predicate__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Predicate__Group__2__Impl_in_rule__Predicate__Group__219488);
            rule__Predicate__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group__2"


    // $ANTLR start "rule__Predicate__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9554:1: rule__Predicate__Group__2__Impl : ( ( rule__Predicate__Group_2__0 )? ) ;
    public final void rule__Predicate__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9558:1: ( ( ( rule__Predicate__Group_2__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9559:1: ( ( rule__Predicate__Group_2__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9559:1: ( ( rule__Predicate__Group_2__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9560:1: ( rule__Predicate__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getGroup_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9561:1: ( rule__Predicate__Group_2__0 )?
            int alt60=2;
            alt60 = dfa60.predict(input);
            switch (alt60) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9561:2: rule__Predicate__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Predicate__Group_2__0_in_rule__Predicate__Group__2__Impl19515);
                    rule__Predicate__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group__2__Impl"


    // $ANTLR start "rule__Predicate__Group_2__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9577:1: rule__Predicate__Group_2__0 : rule__Predicate__Group_2__0__Impl rule__Predicate__Group_2__1 ;
    public final void rule__Predicate__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9581:1: ( rule__Predicate__Group_2__0__Impl rule__Predicate__Group_2__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9582:2: rule__Predicate__Group_2__0__Impl rule__Predicate__Group_2__1
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2__0__Impl_in_rule__Predicate__Group_2__019552);
            rule__Predicate__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Predicate__Group_2__1_in_rule__Predicate__Group_2__019555);
            rule__Predicate__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2__0"


    // $ANTLR start "rule__Predicate__Group_2__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9589:1: rule__Predicate__Group_2__0__Impl : ( ( '(' ) ) ;
    public final void rule__Predicate__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9593:1: ( ( ( '(' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9594:1: ( ( '(' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9594:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9595:1: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9596:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9597:2: '('
            {
            match(input,42,FOLLOW_42_in_rule__Predicate__Group_2__0__Impl19584); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2__0__Impl"


    // $ANTLR start "rule__Predicate__Group_2__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9608:1: rule__Predicate__Group_2__1 : rule__Predicate__Group_2__1__Impl rule__Predicate__Group_2__2 ;
    public final void rule__Predicate__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9612:1: ( rule__Predicate__Group_2__1__Impl rule__Predicate__Group_2__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9613:2: rule__Predicate__Group_2__1__Impl rule__Predicate__Group_2__2
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2__1__Impl_in_rule__Predicate__Group_2__119616);
            rule__Predicate__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Predicate__Group_2__2_in_rule__Predicate__Group_2__119619);
            rule__Predicate__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2__1"


    // $ANTLR start "rule__Predicate__Group_2__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9620:1: rule__Predicate__Group_2__1__Impl : ( ( rule__Predicate__Group_2_1__0 )? ) ;
    public final void rule__Predicate__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9624:1: ( ( ( rule__Predicate__Group_2_1__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9625:1: ( ( rule__Predicate__Group_2_1__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9625:1: ( ( rule__Predicate__Group_2_1__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9626:1: ( rule__Predicate__Group_2_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getGroup_2_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9627:1: ( rule__Predicate__Group_2_1__0 )?
            int alt61=2;
            int LA61_0 = input.LA(1);

            if ( ((LA61_0>=RULE_STRING && LA61_0<=RULE_IDENTIFIER)||(LA61_0>=27 && LA61_0<=28)||LA61_0==42||LA61_0==50||(LA61_0>=66 && LA61_0<=67)||LA61_0==69||(LA61_0>=85 && LA61_0<=91)) ) {
                alt61=1;
            }
            switch (alt61) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9627:2: rule__Predicate__Group_2_1__0
                    {
                    pushFollow(FOLLOW_rule__Predicate__Group_2_1__0_in_rule__Predicate__Group_2__1__Impl19646);
                    rule__Predicate__Group_2_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getGroup_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2__1__Impl"


    // $ANTLR start "rule__Predicate__Group_2__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9637:1: rule__Predicate__Group_2__2 : rule__Predicate__Group_2__2__Impl ;
    public final void rule__Predicate__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9641:1: ( rule__Predicate__Group_2__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9642:2: rule__Predicate__Group_2__2__Impl
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2__2__Impl_in_rule__Predicate__Group_2__219677);
            rule__Predicate__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2__2"


    // $ANTLR start "rule__Predicate__Group_2__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9648:1: rule__Predicate__Group_2__2__Impl : ( ')' ) ;
    public final void rule__Predicate__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9652:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9653:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9653:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9654:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2()); 
            }
            match(input,43,FOLLOW_43_in_rule__Predicate__Group_2__2__Impl19705); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2__2__Impl"


    // $ANTLR start "rule__Predicate__Group_2_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9673:1: rule__Predicate__Group_2_1__0 : rule__Predicate__Group_2_1__0__Impl rule__Predicate__Group_2_1__1 ;
    public final void rule__Predicate__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9677:1: ( rule__Predicate__Group_2_1__0__Impl rule__Predicate__Group_2_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9678:2: rule__Predicate__Group_2_1__0__Impl rule__Predicate__Group_2_1__1
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2_1__0__Impl_in_rule__Predicate__Group_2_1__019742);
            rule__Predicate__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Predicate__Group_2_1__1_in_rule__Predicate__Group_2_1__019745);
            rule__Predicate__Group_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1__0"


    // $ANTLR start "rule__Predicate__Group_2_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9685:1: rule__Predicate__Group_2_1__0__Impl : ( ( rule__Predicate__TermsAssignment_2_1_0 ) ) ;
    public final void rule__Predicate__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9689:1: ( ( ( rule__Predicate__TermsAssignment_2_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9690:1: ( ( rule__Predicate__TermsAssignment_2_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9690:1: ( ( rule__Predicate__TermsAssignment_2_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9691:1: ( rule__Predicate__TermsAssignment_2_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getTermsAssignment_2_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9692:1: ( rule__Predicate__TermsAssignment_2_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9692:2: rule__Predicate__TermsAssignment_2_1_0
            {
            pushFollow(FOLLOW_rule__Predicate__TermsAssignment_2_1_0_in_rule__Predicate__Group_2_1__0__Impl19772);
            rule__Predicate__TermsAssignment_2_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getTermsAssignment_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1__0__Impl"


    // $ANTLR start "rule__Predicate__Group_2_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9702:1: rule__Predicate__Group_2_1__1 : rule__Predicate__Group_2_1__1__Impl ;
    public final void rule__Predicate__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9706:1: ( rule__Predicate__Group_2_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9707:2: rule__Predicate__Group_2_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2_1__1__Impl_in_rule__Predicate__Group_2_1__119802);
            rule__Predicate__Group_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1__1"


    // $ANTLR start "rule__Predicate__Group_2_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9713:1: rule__Predicate__Group_2_1__1__Impl : ( ( rule__Predicate__Group_2_1_1__0 )* ) ;
    public final void rule__Predicate__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9717:1: ( ( ( rule__Predicate__Group_2_1_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9718:1: ( ( rule__Predicate__Group_2_1_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9718:1: ( ( rule__Predicate__Group_2_1_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9719:1: ( rule__Predicate__Group_2_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getGroup_2_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9720:1: ( rule__Predicate__Group_2_1_1__0 )*
            loop62:
            do {
                int alt62=2;
                int LA62_0 = input.LA(1);

                if ( (LA62_0==45) ) {
                    alt62=1;
                }


                switch (alt62) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9720:2: rule__Predicate__Group_2_1_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Predicate__Group_2_1_1__0_in_rule__Predicate__Group_2_1__1__Impl19829);
            	    rule__Predicate__Group_2_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop62;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getGroup_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1__1__Impl"


    // $ANTLR start "rule__Predicate__Group_2_1_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9734:1: rule__Predicate__Group_2_1_1__0 : rule__Predicate__Group_2_1_1__0__Impl rule__Predicate__Group_2_1_1__1 ;
    public final void rule__Predicate__Group_2_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9738:1: ( rule__Predicate__Group_2_1_1__0__Impl rule__Predicate__Group_2_1_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9739:2: rule__Predicate__Group_2_1_1__0__Impl rule__Predicate__Group_2_1_1__1
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2_1_1__0__Impl_in_rule__Predicate__Group_2_1_1__019864);
            rule__Predicate__Group_2_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Predicate__Group_2_1_1__1_in_rule__Predicate__Group_2_1_1__019867);
            rule__Predicate__Group_2_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1_1__0"


    // $ANTLR start "rule__Predicate__Group_2_1_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9746:1: rule__Predicate__Group_2_1_1__0__Impl : ( ',' ) ;
    public final void rule__Predicate__Group_2_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9750:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9751:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9751:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9752:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getCommaKeyword_2_1_1_0()); 
            }
            match(input,45,FOLLOW_45_in_rule__Predicate__Group_2_1_1__0__Impl19895); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getCommaKeyword_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1_1__0__Impl"


    // $ANTLR start "rule__Predicate__Group_2_1_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9765:1: rule__Predicate__Group_2_1_1__1 : rule__Predicate__Group_2_1_1__1__Impl ;
    public final void rule__Predicate__Group_2_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9769:1: ( rule__Predicate__Group_2_1_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9770:2: rule__Predicate__Group_2_1_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Predicate__Group_2_1_1__1__Impl_in_rule__Predicate__Group_2_1_1__119926);
            rule__Predicate__Group_2_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1_1__1"


    // $ANTLR start "rule__Predicate__Group_2_1_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9776:1: rule__Predicate__Group_2_1_1__1__Impl : ( ( rule__Predicate__TermsAssignment_2_1_1_1 ) ) ;
    public final void rule__Predicate__Group_2_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9780:1: ( ( ( rule__Predicate__TermsAssignment_2_1_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9781:1: ( ( rule__Predicate__TermsAssignment_2_1_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9781:1: ( ( rule__Predicate__TermsAssignment_2_1_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9782:1: ( rule__Predicate__TermsAssignment_2_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getTermsAssignment_2_1_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9783:1: ( rule__Predicate__TermsAssignment_2_1_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9783:2: rule__Predicate__TermsAssignment_2_1_1_1
            {
            pushFollow(FOLLOW_rule__Predicate__TermsAssignment_2_1_1_1_in_rule__Predicate__Group_2_1_1__1__Impl19953);
            rule__Predicate__TermsAssignment_2_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getTermsAssignment_2_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__Group_2_1_1__1__Impl"


    // $ANTLR start "rule__Type__Group_0__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9797:1: rule__Type__Group_0__0 : rule__Type__Group_0__0__Impl rule__Type__Group_0__1 ;
    public final void rule__Type__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9801:1: ( rule__Type__Group_0__0__Impl rule__Type__Group_0__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9802:2: rule__Type__Group_0__0__Impl rule__Type__Group_0__1
            {
            pushFollow(FOLLOW_rule__Type__Group_0__0__Impl_in_rule__Type__Group_0__019987);
            rule__Type__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_0__1_in_rule__Type__Group_0__019990);
            rule__Type__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_0__0"


    // $ANTLR start "rule__Type__Group_0__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9809:1: rule__Type__Group_0__0__Impl : ( () ) ;
    public final void rule__Type__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9813:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9814:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9814:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9815:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9816:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9818:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_0__0__Impl"


    // $ANTLR start "rule__Type__Group_0__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9828:1: rule__Type__Group_0__1 : rule__Type__Group_0__1__Impl ;
    public final void rule__Type__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9832:1: ( rule__Type__Group_0__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9833:2: rule__Type__Group_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_0__1__Impl_in_rule__Type__Group_0__120048);
            rule__Type__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_0__1"


    // $ANTLR start "rule__Type__Group_0__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9839:1: rule__Type__Group_0__1__Impl : ( ( rule__Type__TypeAssignment_0_1 ) ) ;
    public final void rule__Type__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9843:1: ( ( ( rule__Type__TypeAssignment_0_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9844:1: ( ( rule__Type__TypeAssignment_0_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9844:1: ( ( rule__Type__TypeAssignment_0_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9845:1: ( rule__Type__TypeAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_0_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9846:1: ( rule__Type__TypeAssignment_0_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9846:2: rule__Type__TypeAssignment_0_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_0_1_in_rule__Type__Group_0__1__Impl20075);
            rule__Type__TypeAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_0__1__Impl"


    // $ANTLR start "rule__Type__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9860:1: rule__Type__Group_1__0 : rule__Type__Group_1__0__Impl rule__Type__Group_1__1 ;
    public final void rule__Type__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9864:1: ( rule__Type__Group_1__0__Impl rule__Type__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9865:2: rule__Type__Group_1__0__Impl rule__Type__Group_1__1
            {
            pushFollow(FOLLOW_rule__Type__Group_1__0__Impl_in_rule__Type__Group_1__020109);
            rule__Type__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_1__1_in_rule__Type__Group_1__020112);
            rule__Type__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_1__0"


    // $ANTLR start "rule__Type__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9872:1: rule__Type__Group_1__0__Impl : ( () ) ;
    public final void rule__Type__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9876:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9877:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9877:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9878:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9879:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9881:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_1__0__Impl"


    // $ANTLR start "rule__Type__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9891:1: rule__Type__Group_1__1 : rule__Type__Group_1__1__Impl ;
    public final void rule__Type__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9895:1: ( rule__Type__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9896:2: rule__Type__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_1__1__Impl_in_rule__Type__Group_1__120170);
            rule__Type__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_1__1"


    // $ANTLR start "rule__Type__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9902:1: rule__Type__Group_1__1__Impl : ( ( rule__Type__TypeAssignment_1_1 ) ) ;
    public final void rule__Type__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9906:1: ( ( ( rule__Type__TypeAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9907:1: ( ( rule__Type__TypeAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9907:1: ( ( rule__Type__TypeAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9908:1: ( rule__Type__TypeAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9909:1: ( rule__Type__TypeAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9909:2: rule__Type__TypeAssignment_1_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_1_1_in_rule__Type__Group_1__1__Impl20197);
            rule__Type__TypeAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_1__1__Impl"


    // $ANTLR start "rule__Type__Group_2__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9923:1: rule__Type__Group_2__0 : rule__Type__Group_2__0__Impl rule__Type__Group_2__1 ;
    public final void rule__Type__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9927:1: ( rule__Type__Group_2__0__Impl rule__Type__Group_2__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9928:2: rule__Type__Group_2__0__Impl rule__Type__Group_2__1
            {
            pushFollow(FOLLOW_rule__Type__Group_2__0__Impl_in_rule__Type__Group_2__020231);
            rule__Type__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_2__1_in_rule__Type__Group_2__020234);
            rule__Type__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_2__0"


    // $ANTLR start "rule__Type__Group_2__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9935:1: rule__Type__Group_2__0__Impl : ( () ) ;
    public final void rule__Type__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9939:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9940:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9940:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9941:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9942:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9944:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_2_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_2__0__Impl"


    // $ANTLR start "rule__Type__Group_2__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9954:1: rule__Type__Group_2__1 : rule__Type__Group_2__1__Impl ;
    public final void rule__Type__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9958:1: ( rule__Type__Group_2__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9959:2: rule__Type__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_2__1__Impl_in_rule__Type__Group_2__120292);
            rule__Type__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_2__1"


    // $ANTLR start "rule__Type__Group_2__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9965:1: rule__Type__Group_2__1__Impl : ( ( rule__Type__TypeAssignment_2_1 ) ) ;
    public final void rule__Type__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9969:1: ( ( ( rule__Type__TypeAssignment_2_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9970:1: ( ( rule__Type__TypeAssignment_2_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9970:1: ( ( rule__Type__TypeAssignment_2_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9971:1: ( rule__Type__TypeAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_2_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9972:1: ( rule__Type__TypeAssignment_2_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9972:2: rule__Type__TypeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_2_1_in_rule__Type__Group_2__1__Impl20319);
            rule__Type__TypeAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_2__1__Impl"


    // $ANTLR start "rule__Type__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9986:1: rule__Type__Group_3__0 : rule__Type__Group_3__0__Impl rule__Type__Group_3__1 ;
    public final void rule__Type__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9990:1: ( rule__Type__Group_3__0__Impl rule__Type__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9991:2: rule__Type__Group_3__0__Impl rule__Type__Group_3__1
            {
            pushFollow(FOLLOW_rule__Type__Group_3__0__Impl_in_rule__Type__Group_3__020353);
            rule__Type__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_3__1_in_rule__Type__Group_3__020356);
            rule__Type__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_3__0"


    // $ANTLR start "rule__Type__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9998:1: rule__Type__Group_3__0__Impl : ( () ) ;
    public final void rule__Type__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10002:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10003:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10003:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10004:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_3_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10005:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10007:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_3_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_3__0__Impl"


    // $ANTLR start "rule__Type__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10017:1: rule__Type__Group_3__1 : rule__Type__Group_3__1__Impl ;
    public final void rule__Type__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10021:1: ( rule__Type__Group_3__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10022:2: rule__Type__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_3__1__Impl_in_rule__Type__Group_3__120414);
            rule__Type__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_3__1"


    // $ANTLR start "rule__Type__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10028:1: rule__Type__Group_3__1__Impl : ( ( rule__Type__TypeAssignment_3_1 ) ) ;
    public final void rule__Type__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10032:1: ( ( ( rule__Type__TypeAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10033:1: ( ( rule__Type__TypeAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10033:1: ( ( rule__Type__TypeAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10034:1: ( rule__Type__TypeAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10035:1: ( rule__Type__TypeAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10035:2: rule__Type__TypeAssignment_3_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_3_1_in_rule__Type__Group_3__1__Impl20441);
            rule__Type__TypeAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_3__1__Impl"


    // $ANTLR start "rule__Type__Group_4__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10049:1: rule__Type__Group_4__0 : rule__Type__Group_4__0__Impl rule__Type__Group_4__1 ;
    public final void rule__Type__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10053:1: ( rule__Type__Group_4__0__Impl rule__Type__Group_4__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10054:2: rule__Type__Group_4__0__Impl rule__Type__Group_4__1
            {
            pushFollow(FOLLOW_rule__Type__Group_4__0__Impl_in_rule__Type__Group_4__020475);
            rule__Type__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_4__1_in_rule__Type__Group_4__020478);
            rule__Type__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_4__0"


    // $ANTLR start "rule__Type__Group_4__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10061:1: rule__Type__Group_4__0__Impl : ( () ) ;
    public final void rule__Type__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10065:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10066:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10066:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10067:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_4_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10068:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10070:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_4_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_4__0__Impl"


    // $ANTLR start "rule__Type__Group_4__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10080:1: rule__Type__Group_4__1 : rule__Type__Group_4__1__Impl ;
    public final void rule__Type__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10084:1: ( rule__Type__Group_4__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10085:2: rule__Type__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_4__1__Impl_in_rule__Type__Group_4__120536);
            rule__Type__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_4__1"


    // $ANTLR start "rule__Type__Group_4__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10091:1: rule__Type__Group_4__1__Impl : ( ( rule__Type__TypeAssignment_4_1 ) ) ;
    public final void rule__Type__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10095:1: ( ( ( rule__Type__TypeAssignment_4_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10096:1: ( ( rule__Type__TypeAssignment_4_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10096:1: ( ( rule__Type__TypeAssignment_4_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10097:1: ( rule__Type__TypeAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_4_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10098:1: ( rule__Type__TypeAssignment_4_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10098:2: rule__Type__TypeAssignment_4_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_4_1_in_rule__Type__Group_4__1__Impl20563);
            rule__Type__TypeAssignment_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_4__1__Impl"


    // $ANTLR start "rule__Type__Group_5__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10112:1: rule__Type__Group_5__0 : rule__Type__Group_5__0__Impl rule__Type__Group_5__1 ;
    public final void rule__Type__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10116:1: ( rule__Type__Group_5__0__Impl rule__Type__Group_5__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10117:2: rule__Type__Group_5__0__Impl rule__Type__Group_5__1
            {
            pushFollow(FOLLOW_rule__Type__Group_5__0__Impl_in_rule__Type__Group_5__020597);
            rule__Type__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_5__1_in_rule__Type__Group_5__020600);
            rule__Type__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_5__0"


    // $ANTLR start "rule__Type__Group_5__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10124:1: rule__Type__Group_5__0__Impl : ( () ) ;
    public final void rule__Type__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10128:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10129:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10129:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10130:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_5_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10131:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10133:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_5_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_5__0__Impl"


    // $ANTLR start "rule__Type__Group_5__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10143:1: rule__Type__Group_5__1 : rule__Type__Group_5__1__Impl ;
    public final void rule__Type__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10147:1: ( rule__Type__Group_5__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10148:2: rule__Type__Group_5__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_5__1__Impl_in_rule__Type__Group_5__120658);
            rule__Type__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_5__1"


    // $ANTLR start "rule__Type__Group_5__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10154:1: rule__Type__Group_5__1__Impl : ( ( rule__Type__TypeAssignment_5_1 ) ) ;
    public final void rule__Type__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10158:1: ( ( ( rule__Type__TypeAssignment_5_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10159:1: ( ( rule__Type__TypeAssignment_5_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10159:1: ( ( rule__Type__TypeAssignment_5_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10160:1: ( rule__Type__TypeAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_5_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10161:1: ( rule__Type__TypeAssignment_5_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10161:2: rule__Type__TypeAssignment_5_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_5_1_in_rule__Type__Group_5__1__Impl20685);
            rule__Type__TypeAssignment_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_5__1__Impl"


    // $ANTLR start "rule__Type__Group_6__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10175:1: rule__Type__Group_6__0 : rule__Type__Group_6__0__Impl rule__Type__Group_6__1 ;
    public final void rule__Type__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10179:1: ( rule__Type__Group_6__0__Impl rule__Type__Group_6__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10180:2: rule__Type__Group_6__0__Impl rule__Type__Group_6__1
            {
            pushFollow(FOLLOW_rule__Type__Group_6__0__Impl_in_rule__Type__Group_6__020719);
            rule__Type__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_6__1_in_rule__Type__Group_6__020722);
            rule__Type__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_6__0"


    // $ANTLR start "rule__Type__Group_6__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10187:1: rule__Type__Group_6__0__Impl : ( () ) ;
    public final void rule__Type__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10191:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10192:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10192:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10193:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_6_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10194:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10196:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_6_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_6__0__Impl"


    // $ANTLR start "rule__Type__Group_6__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10206:1: rule__Type__Group_6__1 : rule__Type__Group_6__1__Impl ;
    public final void rule__Type__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10210:1: ( rule__Type__Group_6__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10211:2: rule__Type__Group_6__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_6__1__Impl_in_rule__Type__Group_6__120780);
            rule__Type__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_6__1"


    // $ANTLR start "rule__Type__Group_6__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10217:1: rule__Type__Group_6__1__Impl : ( ( rule__Type__TypeAssignment_6_1 ) ) ;
    public final void rule__Type__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10221:1: ( ( ( rule__Type__TypeAssignment_6_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10222:1: ( ( rule__Type__TypeAssignment_6_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10222:1: ( ( rule__Type__TypeAssignment_6_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10223:1: ( rule__Type__TypeAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_6_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10224:1: ( rule__Type__TypeAssignment_6_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10224:2: rule__Type__TypeAssignment_6_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_6_1_in_rule__Type__Group_6__1__Impl20807);
            rule__Type__TypeAssignment_6_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_6__1__Impl"


    // $ANTLR start "rule__Type__Group_7__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10238:1: rule__Type__Group_7__0 : rule__Type__Group_7__0__Impl rule__Type__Group_7__1 ;
    public final void rule__Type__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10242:1: ( rule__Type__Group_7__0__Impl rule__Type__Group_7__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10243:2: rule__Type__Group_7__0__Impl rule__Type__Group_7__1
            {
            pushFollow(FOLLOW_rule__Type__Group_7__0__Impl_in_rule__Type__Group_7__020841);
            rule__Type__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_7__1_in_rule__Type__Group_7__020844);
            rule__Type__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_7__0"


    // $ANTLR start "rule__Type__Group_7__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10250:1: rule__Type__Group_7__0__Impl : ( () ) ;
    public final void rule__Type__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10254:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10255:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10255:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10256:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_7_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10257:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10259:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_7_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_7__0__Impl"


    // $ANTLR start "rule__Type__Group_7__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10269:1: rule__Type__Group_7__1 : rule__Type__Group_7__1__Impl ;
    public final void rule__Type__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10273:1: ( rule__Type__Group_7__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10274:2: rule__Type__Group_7__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_7__1__Impl_in_rule__Type__Group_7__120902);
            rule__Type__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_7__1"


    // $ANTLR start "rule__Type__Group_7__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10280:1: rule__Type__Group_7__1__Impl : ( ( rule__Type__TypeAssignment_7_1 ) ) ;
    public final void rule__Type__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10284:1: ( ( ( rule__Type__TypeAssignment_7_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10285:1: ( ( rule__Type__TypeAssignment_7_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10285:1: ( ( rule__Type__TypeAssignment_7_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10286:1: ( rule__Type__TypeAssignment_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_7_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10287:1: ( rule__Type__TypeAssignment_7_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10287:2: rule__Type__TypeAssignment_7_1
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_7_1_in_rule__Type__Group_7__1__Impl20929);
            rule__Type__TypeAssignment_7_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_7__1__Impl"


    // $ANTLR start "rule__Type__Group_8__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10301:1: rule__Type__Group_8__0 : rule__Type__Group_8__0__Impl rule__Type__Group_8__1 ;
    public final void rule__Type__Group_8__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10305:1: ( rule__Type__Group_8__0__Impl rule__Type__Group_8__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10306:2: rule__Type__Group_8__0__Impl rule__Type__Group_8__1
            {
            pushFollow(FOLLOW_rule__Type__Group_8__0__Impl_in_rule__Type__Group_8__020963);
            rule__Type__Group_8__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_8__1_in_rule__Type__Group_8__020966);
            rule__Type__Group_8__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8__0"


    // $ANTLR start "rule__Type__Group_8__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10313:1: rule__Type__Group_8__0__Impl : ( () ) ;
    public final void rule__Type__Group_8__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10317:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10318:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10318:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10319:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAction_8_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10320:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10322:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAction_8_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8__0__Impl"


    // $ANTLR start "rule__Type__Group_8__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10332:1: rule__Type__Group_8__1 : rule__Type__Group_8__1__Impl ;
    public final void rule__Type__Group_8__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10336:1: ( rule__Type__Group_8__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10337:2: rule__Type__Group_8__1__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_8__1__Impl_in_rule__Type__Group_8__121024);
            rule__Type__Group_8__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8__1"


    // $ANTLR start "rule__Type__Group_8__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10343:1: rule__Type__Group_8__1__Impl : ( ( rule__Type__Group_8_1__0 ) ) ;
    public final void rule__Type__Group_8__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10347:1: ( ( ( rule__Type__Group_8_1__0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10348:1: ( ( rule__Type__Group_8_1__0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10348:1: ( ( rule__Type__Group_8_1__0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10349:1: ( rule__Type__Group_8_1__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getGroup_8_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10350:1: ( rule__Type__Group_8_1__0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10350:2: rule__Type__Group_8_1__0
            {
            pushFollow(FOLLOW_rule__Type__Group_8_1__0_in_rule__Type__Group_8__1__Impl21051);
            rule__Type__Group_8_1__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getGroup_8_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8__1__Impl"


    // $ANTLR start "rule__Type__Group_8_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10364:1: rule__Type__Group_8_1__0 : rule__Type__Group_8_1__0__Impl rule__Type__Group_8_1__1 ;
    public final void rule__Type__Group_8_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10368:1: ( rule__Type__Group_8_1__0__Impl rule__Type__Group_8_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10369:2: rule__Type__Group_8_1__0__Impl rule__Type__Group_8_1__1
            {
            pushFollow(FOLLOW_rule__Type__Group_8_1__0__Impl_in_rule__Type__Group_8_1__021085);
            rule__Type__Group_8_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_8_1__1_in_rule__Type__Group_8_1__021088);
            rule__Type__Group_8_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__0"


    // $ANTLR start "rule__Type__Group_8_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10376:1: rule__Type__Group_8_1__0__Impl : ( 'object' ) ;
    public final void rule__Type__Group_8_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10380:1: ( ( 'object' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10381:1: ( 'object' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10381:1: ( 'object' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10382:1: 'object'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getObjectKeyword_8_1_0()); 
            }
            match(input,69,FOLLOW_69_in_rule__Type__Group_8_1__0__Impl21116); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getObjectKeyword_8_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__0__Impl"


    // $ANTLR start "rule__Type__Group_8_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10395:1: rule__Type__Group_8_1__1 : rule__Type__Group_8_1__1__Impl rule__Type__Group_8_1__2 ;
    public final void rule__Type__Group_8_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10399:1: ( rule__Type__Group_8_1__1__Impl rule__Type__Group_8_1__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10400:2: rule__Type__Group_8_1__1__Impl rule__Type__Group_8_1__2
            {
            pushFollow(FOLLOW_rule__Type__Group_8_1__1__Impl_in_rule__Type__Group_8_1__121147);
            rule__Type__Group_8_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_8_1__2_in_rule__Type__Group_8_1__121150);
            rule__Type__Group_8_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__1"


    // $ANTLR start "rule__Type__Group_8_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10407:1: rule__Type__Group_8_1__1__Impl : ( '<' ) ;
    public final void rule__Type__Group_8_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10411:1: ( ( '<' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10412:1: ( '<' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10412:1: ( '<' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10413:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getLessThanSignKeyword_8_1_1()); 
            }
            match(input,24,FOLLOW_24_in_rule__Type__Group_8_1__1__Impl21178); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getLessThanSignKeyword_8_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__1__Impl"


    // $ANTLR start "rule__Type__Group_8_1__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10426:1: rule__Type__Group_8_1__2 : rule__Type__Group_8_1__2__Impl rule__Type__Group_8_1__3 ;
    public final void rule__Type__Group_8_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10430:1: ( rule__Type__Group_8_1__2__Impl rule__Type__Group_8_1__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10431:2: rule__Type__Group_8_1__2__Impl rule__Type__Group_8_1__3
            {
            pushFollow(FOLLOW_rule__Type__Group_8_1__2__Impl_in_rule__Type__Group_8_1__221209);
            rule__Type__Group_8_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Type__Group_8_1__3_in_rule__Type__Group_8_1__221212);
            rule__Type__Group_8_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__2"


    // $ANTLR start "rule__Type__Group_8_1__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10438:1: rule__Type__Group_8_1__2__Impl : ( ( rule__Type__TypeAssignment_8_1_2 ) ) ;
    public final void rule__Type__Group_8_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10442:1: ( ( ( rule__Type__TypeAssignment_8_1_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10443:1: ( ( rule__Type__TypeAssignment_8_1_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10443:1: ( ( rule__Type__TypeAssignment_8_1_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10444:1: ( rule__Type__TypeAssignment_8_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeAssignment_8_1_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10445:1: ( rule__Type__TypeAssignment_8_1_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10445:2: rule__Type__TypeAssignment_8_1_2
            {
            pushFollow(FOLLOW_rule__Type__TypeAssignment_8_1_2_in_rule__Type__Group_8_1__2__Impl21239);
            rule__Type__TypeAssignment_8_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeAssignment_8_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__2__Impl"


    // $ANTLR start "rule__Type__Group_8_1__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10455:1: rule__Type__Group_8_1__3 : rule__Type__Group_8_1__3__Impl ;
    public final void rule__Type__Group_8_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10459:1: ( rule__Type__Group_8_1__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10460:2: rule__Type__Group_8_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Type__Group_8_1__3__Impl_in_rule__Type__Group_8_1__321269);
            rule__Type__Group_8_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__3"


    // $ANTLR start "rule__Type__Group_8_1__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10466:1: rule__Type__Group_8_1__3__Impl : ( '>' ) ;
    public final void rule__Type__Group_8_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10470:1: ( ( '>' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10471:1: ( '>' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10471:1: ( '>' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10472:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getGreaterThanSignKeyword_8_1_3()); 
            }
            match(input,23,FOLLOW_23_in_rule__Type__Group_8_1__3__Impl21297); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getGreaterThanSignKeyword_8_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Group_8_1__3__Impl"


    // $ANTLR start "rule__Variable__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10493:1: rule__Variable__Group__0 : rule__Variable__Group__0__Impl rule__Variable__Group__1 ;
    public final void rule__Variable__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10497:1: ( rule__Variable__Group__0__Impl rule__Variable__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10498:2: rule__Variable__Group__0__Impl rule__Variable__Group__1
            {
            pushFollow(FOLLOW_rule__Variable__Group__0__Impl_in_rule__Variable__Group__021336);
            rule__Variable__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Variable__Group__1_in_rule__Variable__Group__021339);
            rule__Variable__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Variable__Group__0"


    // $ANTLR start "rule__Variable__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10505:1: rule__Variable__Group__0__Impl : ( ( rule__Variable__TypeAssignment_0 ) ) ;
    public final void rule__Variable__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10509:1: ( ( ( rule__Variable__TypeAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10510:1: ( ( rule__Variable__TypeAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10510:1: ( ( rule__Variable__TypeAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10511:1: ( rule__Variable__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVariableAccess().getTypeAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10512:1: ( rule__Variable__TypeAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10512:2: rule__Variable__TypeAssignment_0
            {
            pushFollow(FOLLOW_rule__Variable__TypeAssignment_0_in_rule__Variable__Group__0__Impl21366);
            rule__Variable__TypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getVariableAccess().getTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Variable__Group__0__Impl"


    // $ANTLR start "rule__Variable__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10522:1: rule__Variable__Group__1 : rule__Variable__Group__1__Impl ;
    public final void rule__Variable__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10526:1: ( rule__Variable__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10527:2: rule__Variable__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Variable__Group__1__Impl_in_rule__Variable__Group__121396);
            rule__Variable__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Variable__Group__1"


    // $ANTLR start "rule__Variable__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10533:1: rule__Variable__Group__1__Impl : ( ( rule__Variable__ValueAssignment_1 ) ) ;
    public final void rule__Variable__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10537:1: ( ( ( rule__Variable__ValueAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10538:1: ( ( rule__Variable__ValueAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10538:1: ( ( rule__Variable__ValueAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10539:1: ( rule__Variable__ValueAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVariableAccess().getValueAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10540:1: ( rule__Variable__ValueAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10540:2: rule__Variable__ValueAssignment_1
            {
            pushFollow(FOLLOW_rule__Variable__ValueAssignment_1_in_rule__Variable__Group__1__Impl21423);
            rule__Variable__ValueAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getVariableAccess().getValueAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Variable__Group__1__Impl"


    // $ANTLR start "rule__Assignment__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10554:1: rule__Assignment__Group__0 : rule__Assignment__Group__0__Impl rule__Assignment__Group__1 ;
    public final void rule__Assignment__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10558:1: ( rule__Assignment__Group__0__Impl rule__Assignment__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10559:2: rule__Assignment__Group__0__Impl rule__Assignment__Group__1
            {
            pushFollow(FOLLOW_rule__Assignment__Group__0__Impl_in_rule__Assignment__Group__021457);
            rule__Assignment__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Assignment__Group__1_in_rule__Assignment__Group__021460);
            rule__Assignment__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__Group__0"


    // $ANTLR start "rule__Assignment__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10566:1: rule__Assignment__Group__0__Impl : ( ( rule__Assignment__VariableAssignment_0 ) ) ;
    public final void rule__Assignment__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10570:1: ( ( ( rule__Assignment__VariableAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10571:1: ( ( rule__Assignment__VariableAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10571:1: ( ( rule__Assignment__VariableAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10572:1: ( rule__Assignment__VariableAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentAccess().getVariableAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10573:1: ( rule__Assignment__VariableAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10573:2: rule__Assignment__VariableAssignment_0
            {
            pushFollow(FOLLOW_rule__Assignment__VariableAssignment_0_in_rule__Assignment__Group__0__Impl21487);
            rule__Assignment__VariableAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentAccess().getVariableAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__Group__0__Impl"


    // $ANTLR start "rule__Assignment__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10583:1: rule__Assignment__Group__1 : rule__Assignment__Group__1__Impl rule__Assignment__Group__2 ;
    public final void rule__Assignment__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10587:1: ( rule__Assignment__Group__1__Impl rule__Assignment__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10588:2: rule__Assignment__Group__1__Impl rule__Assignment__Group__2
            {
            pushFollow(FOLLOW_rule__Assignment__Group__1__Impl_in_rule__Assignment__Group__121517);
            rule__Assignment__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Assignment__Group__2_in_rule__Assignment__Group__121520);
            rule__Assignment__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__Group__1"


    // $ANTLR start "rule__Assignment__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10595:1: rule__Assignment__Group__1__Impl : ( '=' ) ;
    public final void rule__Assignment__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10599:1: ( ( '=' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10600:1: ( '=' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10600:1: ( '=' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10601:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentAccess().getEqualsSignKeyword_1()); 
            }
            match(input,70,FOLLOW_70_in_rule__Assignment__Group__1__Impl21548); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentAccess().getEqualsSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__Group__1__Impl"


    // $ANTLR start "rule__Assignment__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10614:1: rule__Assignment__Group__2 : rule__Assignment__Group__2__Impl ;
    public final void rule__Assignment__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10618:1: ( rule__Assignment__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10619:2: rule__Assignment__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Assignment__Group__2__Impl_in_rule__Assignment__Group__221579);
            rule__Assignment__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__Group__2"


    // $ANTLR start "rule__Assignment__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10625:1: rule__Assignment__Group__2__Impl : ( ( rule__Assignment__ValueAssignment_2 ) ) ;
    public final void rule__Assignment__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10629:1: ( ( ( rule__Assignment__ValueAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10630:1: ( ( rule__Assignment__ValueAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10630:1: ( ( rule__Assignment__ValueAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10631:1: ( rule__Assignment__ValueAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentAccess().getValueAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10632:1: ( rule__Assignment__ValueAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10632:2: rule__Assignment__ValueAssignment_2
            {
            pushFollow(FOLLOW_rule__Assignment__ValueAssignment_2_in_rule__Assignment__Group__2__Impl21606);
            rule__Assignment__ValueAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentAccess().getValueAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__Group__2__Impl"


    // $ANTLR start "rule__BeliefUpdate__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10648:1: rule__BeliefUpdate__Group__0 : rule__BeliefUpdate__Group__0__Impl rule__BeliefUpdate__Group__1 ;
    public final void rule__BeliefUpdate__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10652:1: ( rule__BeliefUpdate__Group__0__Impl rule__BeliefUpdate__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10653:2: rule__BeliefUpdate__Group__0__Impl rule__BeliefUpdate__Group__1
            {
            pushFollow(FOLLOW_rule__BeliefUpdate__Group__0__Impl_in_rule__BeliefUpdate__Group__021642);
            rule__BeliefUpdate__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__BeliefUpdate__Group__1_in_rule__BeliefUpdate__Group__021645);
            rule__BeliefUpdate__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__Group__0"


    // $ANTLR start "rule__BeliefUpdate__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10660:1: rule__BeliefUpdate__Group__0__Impl : ( ( rule__BeliefUpdate__TypeAssignment_0 ) ) ;
    public final void rule__BeliefUpdate__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10664:1: ( ( ( rule__BeliefUpdate__TypeAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10665:1: ( ( rule__BeliefUpdate__TypeAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10665:1: ( ( rule__BeliefUpdate__TypeAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10666:1: ( rule__BeliefUpdate__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBeliefUpdateAccess().getTypeAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10667:1: ( rule__BeliefUpdate__TypeAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10667:2: rule__BeliefUpdate__TypeAssignment_0
            {
            pushFollow(FOLLOW_rule__BeliefUpdate__TypeAssignment_0_in_rule__BeliefUpdate__Group__0__Impl21672);
            rule__BeliefUpdate__TypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBeliefUpdateAccess().getTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__Group__0__Impl"


    // $ANTLR start "rule__BeliefUpdate__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10677:1: rule__BeliefUpdate__Group__1 : rule__BeliefUpdate__Group__1__Impl ;
    public final void rule__BeliefUpdate__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10681:1: ( rule__BeliefUpdate__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10682:2: rule__BeliefUpdate__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__BeliefUpdate__Group__1__Impl_in_rule__BeliefUpdate__Group__121702);
            rule__BeliefUpdate__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__Group__1"


    // $ANTLR start "rule__BeliefUpdate__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10688:1: rule__BeliefUpdate__Group__1__Impl : ( ( rule__BeliefUpdate__PredicateAssignment_1 ) ) ;
    public final void rule__BeliefUpdate__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10692:1: ( ( ( rule__BeliefUpdate__PredicateAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10693:1: ( ( rule__BeliefUpdate__PredicateAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10693:1: ( ( rule__BeliefUpdate__PredicateAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10694:1: ( rule__BeliefUpdate__PredicateAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBeliefUpdateAccess().getPredicateAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10695:1: ( rule__BeliefUpdate__PredicateAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10695:2: rule__BeliefUpdate__PredicateAssignment_1
            {
            pushFollow(FOLLOW_rule__BeliefUpdate__PredicateAssignment_1_in_rule__BeliefUpdate__Group__1__Impl21729);
            rule__BeliefUpdate__PredicateAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBeliefUpdateAccess().getPredicateAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__Group__1__Impl"


    // $ANTLR start "rule__Block__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10709:1: rule__Block__Group__0 : rule__Block__Group__0__Impl rule__Block__Group__1 ;
    public final void rule__Block__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10713:1: ( rule__Block__Group__0__Impl rule__Block__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10714:2: rule__Block__Group__0__Impl rule__Block__Group__1
            {
            pushFollow(FOLLOW_rule__Block__Group__0__Impl_in_rule__Block__Group__021763);
            rule__Block__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Block__Group__1_in_rule__Block__Group__021766);
            rule__Block__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__0"


    // $ANTLR start "rule__Block__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10721:1: rule__Block__Group__0__Impl : ( () ) ;
    public final void rule__Block__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10725:1: ( ( () ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10726:1: ( () )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10726:1: ( () )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10727:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockAccess().getBlockAction_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10728:1: ()
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10730:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockAccess().getBlockAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__0__Impl"


    // $ANTLR start "rule__Block__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10740:1: rule__Block__Group__1 : rule__Block__Group__1__Impl rule__Block__Group__2 ;
    public final void rule__Block__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10744:1: ( rule__Block__Group__1__Impl rule__Block__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10745:2: rule__Block__Group__1__Impl rule__Block__Group__2
            {
            pushFollow(FOLLOW_rule__Block__Group__1__Impl_in_rule__Block__Group__121824);
            rule__Block__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Block__Group__2_in_rule__Block__Group__121827);
            rule__Block__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__1"


    // $ANTLR start "rule__Block__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10752:1: rule__Block__Group__1__Impl : ( '{' ) ;
    public final void rule__Block__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10756:1: ( ( '{' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10757:1: ( '{' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10757:1: ( '{' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10758:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockAccess().getLeftCurlyBracketKeyword_1()); 
            }
            match(input,35,FOLLOW_35_in_rule__Block__Group__1__Impl21855); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockAccess().getLeftCurlyBracketKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__1__Impl"


    // $ANTLR start "rule__Block__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10771:1: rule__Block__Group__2 : rule__Block__Group__2__Impl rule__Block__Group__3 ;
    public final void rule__Block__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10775:1: ( rule__Block__Group__2__Impl rule__Block__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10776:2: rule__Block__Group__2__Impl rule__Block__Group__3
            {
            pushFollow(FOLLOW_rule__Block__Group__2__Impl_in_rule__Block__Group__221886);
            rule__Block__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Block__Group__3_in_rule__Block__Group__221889);
            rule__Block__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__2"


    // $ANTLR start "rule__Block__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10783:1: rule__Block__Group__2__Impl : ( ( rule__Block__StepsAssignment_2 )* ) ;
    public final void rule__Block__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10787:1: ( ( ( rule__Block__StepsAssignment_2 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10788:1: ( ( rule__Block__StepsAssignment_2 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10788:1: ( ( rule__Block__StepsAssignment_2 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10789:1: ( rule__Block__StepsAssignment_2 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockAccess().getStepsAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10790:1: ( rule__Block__StepsAssignment_2 )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==RULE_IDENTIFIER||(LA63_0>=27 && LA63_0<=28)||(LA63_0>=32 && LA63_0<=33)||LA63_0==35||LA63_0==61||LA63_0==67||LA63_0==69||(LA63_0>=71 && LA63_0<=76)||LA63_0==78||(LA63_0>=80 && LA63_0<=82)||(LA63_0>=85 && LA63_0<=91)) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10790:2: rule__Block__StepsAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__Block__StepsAssignment_2_in_rule__Block__Group__2__Impl21916);
            	    rule__Block__StepsAssignment_2();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop63;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockAccess().getStepsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__2__Impl"


    // $ANTLR start "rule__Block__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10800:1: rule__Block__Group__3 : rule__Block__Group__3__Impl ;
    public final void rule__Block__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10804:1: ( rule__Block__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10805:2: rule__Block__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Block__Group__3__Impl_in_rule__Block__Group__321947);
            rule__Block__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__3"


    // $ANTLR start "rule__Block__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10811:1: rule__Block__Group__3__Impl : ( '}' ) ;
    public final void rule__Block__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10815:1: ( ( '}' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10816:1: ( '}' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10816:1: ( '}' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10817:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockAccess().getRightCurlyBracketKeyword_3()); 
            }
            match(input,36,FOLLOW_36_in_rule__Block__Group__3__Impl21975); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockAccess().getRightCurlyBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__Group__3__Impl"


    // $ANTLR start "rule__SynchronizedBlock__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10838:1: rule__SynchronizedBlock__Group__0 : rule__SynchronizedBlock__Group__0__Impl rule__SynchronizedBlock__Group__1 ;
    public final void rule__SynchronizedBlock__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10842:1: ( rule__SynchronizedBlock__Group__0__Impl rule__SynchronizedBlock__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10843:2: rule__SynchronizedBlock__Group__0__Impl rule__SynchronizedBlock__Group__1
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__0__Impl_in_rule__SynchronizedBlock__Group__022014);
            rule__SynchronizedBlock__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__1_in_rule__SynchronizedBlock__Group__022017);
            rule__SynchronizedBlock__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__0"


    // $ANTLR start "rule__SynchronizedBlock__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10850:1: rule__SynchronizedBlock__Group__0__Impl : ( 'synchronized' ) ;
    public final void rule__SynchronizedBlock__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10854:1: ( ( 'synchronized' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10855:1: ( 'synchronized' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10855:1: ( 'synchronized' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10856:1: 'synchronized'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getSynchronizedKeyword_0()); 
            }
            match(input,71,FOLLOW_71_in_rule__SynchronizedBlock__Group__0__Impl22045); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getSynchronizedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__0__Impl"


    // $ANTLR start "rule__SynchronizedBlock__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10869:1: rule__SynchronizedBlock__Group__1 : rule__SynchronizedBlock__Group__1__Impl rule__SynchronizedBlock__Group__2 ;
    public final void rule__SynchronizedBlock__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10873:1: ( rule__SynchronizedBlock__Group__1__Impl rule__SynchronizedBlock__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10874:2: rule__SynchronizedBlock__Group__1__Impl rule__SynchronizedBlock__Group__2
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__1__Impl_in_rule__SynchronizedBlock__Group__122076);
            rule__SynchronizedBlock__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__2_in_rule__SynchronizedBlock__Group__122079);
            rule__SynchronizedBlock__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__1"


    // $ANTLR start "rule__SynchronizedBlock__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10881:1: rule__SynchronizedBlock__Group__1__Impl : ( '(' ) ;
    public final void rule__SynchronizedBlock__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10885:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10886:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10886:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10887:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__SynchronizedBlock__Group__1__Impl22107); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__1__Impl"


    // $ANTLR start "rule__SynchronizedBlock__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10900:1: rule__SynchronizedBlock__Group__2 : rule__SynchronizedBlock__Group__2__Impl rule__SynchronizedBlock__Group__3 ;
    public final void rule__SynchronizedBlock__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10904:1: ( rule__SynchronizedBlock__Group__2__Impl rule__SynchronizedBlock__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10905:2: rule__SynchronizedBlock__Group__2__Impl rule__SynchronizedBlock__Group__3
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__2__Impl_in_rule__SynchronizedBlock__Group__222138);
            rule__SynchronizedBlock__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__3_in_rule__SynchronizedBlock__Group__222141);
            rule__SynchronizedBlock__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__2"


    // $ANTLR start "rule__SynchronizedBlock__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10912:1: rule__SynchronizedBlock__Group__2__Impl : ( ( rule__SynchronizedBlock__TokenAssignment_2 ) ) ;
    public final void rule__SynchronizedBlock__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10916:1: ( ( ( rule__SynchronizedBlock__TokenAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10917:1: ( ( rule__SynchronizedBlock__TokenAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10917:1: ( ( rule__SynchronizedBlock__TokenAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10918:1: ( rule__SynchronizedBlock__TokenAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getTokenAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10919:1: ( rule__SynchronizedBlock__TokenAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10919:2: rule__SynchronizedBlock__TokenAssignment_2
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__TokenAssignment_2_in_rule__SynchronizedBlock__Group__2__Impl22168);
            rule__SynchronizedBlock__TokenAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getTokenAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__2__Impl"


    // $ANTLR start "rule__SynchronizedBlock__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10929:1: rule__SynchronizedBlock__Group__3 : rule__SynchronizedBlock__Group__3__Impl rule__SynchronizedBlock__Group__4 ;
    public final void rule__SynchronizedBlock__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10933:1: ( rule__SynchronizedBlock__Group__3__Impl rule__SynchronizedBlock__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10934:2: rule__SynchronizedBlock__Group__3__Impl rule__SynchronizedBlock__Group__4
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__3__Impl_in_rule__SynchronizedBlock__Group__322198);
            rule__SynchronizedBlock__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__4_in_rule__SynchronizedBlock__Group__322201);
            rule__SynchronizedBlock__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__3"


    // $ANTLR start "rule__SynchronizedBlock__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10941:1: rule__SynchronizedBlock__Group__3__Impl : ( ')' ) ;
    public final void rule__SynchronizedBlock__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10945:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10946:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10946:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10947:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__SynchronizedBlock__Group__3__Impl22229); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__3__Impl"


    // $ANTLR start "rule__SynchronizedBlock__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10960:1: rule__SynchronizedBlock__Group__4 : rule__SynchronizedBlock__Group__4__Impl ;
    public final void rule__SynchronizedBlock__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10964:1: ( rule__SynchronizedBlock__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10965:2: rule__SynchronizedBlock__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__Group__4__Impl_in_rule__SynchronizedBlock__Group__422260);
            rule__SynchronizedBlock__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__4"


    // $ANTLR start "rule__SynchronizedBlock__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10971:1: rule__SynchronizedBlock__Group__4__Impl : ( ( rule__SynchronizedBlock__BlockAssignment_4 ) ) ;
    public final void rule__SynchronizedBlock__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10975:1: ( ( ( rule__SynchronizedBlock__BlockAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10976:1: ( ( rule__SynchronizedBlock__BlockAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10976:1: ( ( rule__SynchronizedBlock__BlockAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10977:1: ( rule__SynchronizedBlock__BlockAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getBlockAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10978:1: ( rule__SynchronizedBlock__BlockAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10978:2: rule__SynchronizedBlock__BlockAssignment_4
            {
            pushFollow(FOLLOW_rule__SynchronizedBlock__BlockAssignment_4_in_rule__SynchronizedBlock__Group__4__Impl22287);
            rule__SynchronizedBlock__BlockAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getBlockAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__Group__4__Impl"


    // $ANTLR start "rule__ForEach__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:10998:1: rule__ForEach__Group__0 : rule__ForEach__Group__0__Impl rule__ForEach__Group__1 ;
    public final void rule__ForEach__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11002:1: ( rule__ForEach__Group__0__Impl rule__ForEach__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11003:2: rule__ForEach__Group__0__Impl rule__ForEach__Group__1
            {
            pushFollow(FOLLOW_rule__ForEach__Group__0__Impl_in_rule__ForEach__Group__022327);
            rule__ForEach__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ForEach__Group__1_in_rule__ForEach__Group__022330);
            rule__ForEach__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__0"


    // $ANTLR start "rule__ForEach__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11010:1: rule__ForEach__Group__0__Impl : ( 'foreach' ) ;
    public final void rule__ForEach__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11014:1: ( ( 'foreach' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11015:1: ( 'foreach' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11015:1: ( 'foreach' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11016:1: 'foreach'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getForeachKeyword_0()); 
            }
            match(input,72,FOLLOW_72_in_rule__ForEach__Group__0__Impl22358); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getForeachKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__0__Impl"


    // $ANTLR start "rule__ForEach__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11029:1: rule__ForEach__Group__1 : rule__ForEach__Group__1__Impl rule__ForEach__Group__2 ;
    public final void rule__ForEach__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11033:1: ( rule__ForEach__Group__1__Impl rule__ForEach__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11034:2: rule__ForEach__Group__1__Impl rule__ForEach__Group__2
            {
            pushFollow(FOLLOW_rule__ForEach__Group__1__Impl_in_rule__ForEach__Group__122389);
            rule__ForEach__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ForEach__Group__2_in_rule__ForEach__Group__122392);
            rule__ForEach__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__1"


    // $ANTLR start "rule__ForEach__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11041:1: rule__ForEach__Group__1__Impl : ( '(' ) ;
    public final void rule__ForEach__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11045:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11046:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11046:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11047:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__ForEach__Group__1__Impl22420); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__1__Impl"


    // $ANTLR start "rule__ForEach__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11060:1: rule__ForEach__Group__2 : rule__ForEach__Group__2__Impl rule__ForEach__Group__3 ;
    public final void rule__ForEach__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11064:1: ( rule__ForEach__Group__2__Impl rule__ForEach__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11065:2: rule__ForEach__Group__2__Impl rule__ForEach__Group__3
            {
            pushFollow(FOLLOW_rule__ForEach__Group__2__Impl_in_rule__ForEach__Group__222451);
            rule__ForEach__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ForEach__Group__3_in_rule__ForEach__Group__222454);
            rule__ForEach__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__2"


    // $ANTLR start "rule__ForEach__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11072:1: rule__ForEach__Group__2__Impl : ( ( rule__ForEach__GuardAssignment_2 ) ) ;
    public final void rule__ForEach__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11076:1: ( ( ( rule__ForEach__GuardAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11077:1: ( ( rule__ForEach__GuardAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11077:1: ( ( rule__ForEach__GuardAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11078:1: ( rule__ForEach__GuardAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getGuardAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11079:1: ( rule__ForEach__GuardAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11079:2: rule__ForEach__GuardAssignment_2
            {
            pushFollow(FOLLOW_rule__ForEach__GuardAssignment_2_in_rule__ForEach__Group__2__Impl22481);
            rule__ForEach__GuardAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getGuardAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__2__Impl"


    // $ANTLR start "rule__ForEach__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11089:1: rule__ForEach__Group__3 : rule__ForEach__Group__3__Impl rule__ForEach__Group__4 ;
    public final void rule__ForEach__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11093:1: ( rule__ForEach__Group__3__Impl rule__ForEach__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11094:2: rule__ForEach__Group__3__Impl rule__ForEach__Group__4
            {
            pushFollow(FOLLOW_rule__ForEach__Group__3__Impl_in_rule__ForEach__Group__322511);
            rule__ForEach__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__ForEach__Group__4_in_rule__ForEach__Group__322514);
            rule__ForEach__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__3"


    // $ANTLR start "rule__ForEach__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11101:1: rule__ForEach__Group__3__Impl : ( ')' ) ;
    public final void rule__ForEach__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11105:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11106:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11106:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11107:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__ForEach__Group__3__Impl22542); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__3__Impl"


    // $ANTLR start "rule__ForEach__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11120:1: rule__ForEach__Group__4 : rule__ForEach__Group__4__Impl ;
    public final void rule__ForEach__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11124:1: ( rule__ForEach__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11125:2: rule__ForEach__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__ForEach__Group__4__Impl_in_rule__ForEach__Group__422573);
            rule__ForEach__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__4"


    // $ANTLR start "rule__ForEach__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11131:1: rule__ForEach__Group__4__Impl : ( ( rule__ForEach__BodyAssignment_4 ) ) ;
    public final void rule__ForEach__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11135:1: ( ( ( rule__ForEach__BodyAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11136:1: ( ( rule__ForEach__BodyAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11136:1: ( ( rule__ForEach__BodyAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11137:1: ( rule__ForEach__BodyAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getBodyAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11138:1: ( rule__ForEach__BodyAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11138:2: rule__ForEach__BodyAssignment_4
            {
            pushFollow(FOLLOW_rule__ForEach__BodyAssignment_4_in_rule__ForEach__Group__4__Impl22600);
            rule__ForEach__BodyAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getBodyAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__Group__4__Impl"


    // $ANTLR start "rule__GoalStep__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11158:1: rule__GoalStep__Group__0 : rule__GoalStep__Group__0__Impl rule__GoalStep__Group__1 ;
    public final void rule__GoalStep__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11162:1: ( rule__GoalStep__Group__0__Impl rule__GoalStep__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11163:2: rule__GoalStep__Group__0__Impl rule__GoalStep__Group__1
            {
            pushFollow(FOLLOW_rule__GoalStep__Group__0__Impl_in_rule__GoalStep__Group__022640);
            rule__GoalStep__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__GoalStep__Group__1_in_rule__GoalStep__Group__022643);
            rule__GoalStep__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GoalStep__Group__0"


    // $ANTLR start "rule__GoalStep__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11170:1: rule__GoalStep__Group__0__Impl : ( ( rule__GoalStep__SpawnedAssignment_0 )? ) ;
    public final void rule__GoalStep__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11174:1: ( ( ( rule__GoalStep__SpawnedAssignment_0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11175:1: ( ( rule__GoalStep__SpawnedAssignment_0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11175:1: ( ( rule__GoalStep__SpawnedAssignment_0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11176:1: ( rule__GoalStep__SpawnedAssignment_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepAccess().getSpawnedAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11177:1: ( rule__GoalStep__SpawnedAssignment_0 )?
            int alt64=2;
            int LA64_0 = input.LA(1);

            if ( (LA64_0==61) ) {
                int LA64_1 = input.LA(2);

                if ( (LA64_1==61) ) {
                    alt64=1;
                }
            }
            switch (alt64) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11177:2: rule__GoalStep__SpawnedAssignment_0
                    {
                    pushFollow(FOLLOW_rule__GoalStep__SpawnedAssignment_0_in_rule__GoalStep__Group__0__Impl22670);
                    rule__GoalStep__SpawnedAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepAccess().getSpawnedAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GoalStep__Group__0__Impl"


    // $ANTLR start "rule__GoalStep__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11187:1: rule__GoalStep__Group__1 : rule__GoalStep__Group__1__Impl ;
    public final void rule__GoalStep__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11191:1: ( rule__GoalStep__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11192:2: rule__GoalStep__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__GoalStep__Group__1__Impl_in_rule__GoalStep__Group__122701);
            rule__GoalStep__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GoalStep__Group__1"


    // $ANTLR start "rule__GoalStep__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11198:1: rule__GoalStep__Group__1__Impl : ( ( rule__GoalStep__GoalAssignment_1 ) ) ;
    public final void rule__GoalStep__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11202:1: ( ( ( rule__GoalStep__GoalAssignment_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11203:1: ( ( rule__GoalStep__GoalAssignment_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11203:1: ( ( rule__GoalStep__GoalAssignment_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11204:1: ( rule__GoalStep__GoalAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepAccess().getGoalAssignment_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11205:1: ( rule__GoalStep__GoalAssignment_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11205:2: rule__GoalStep__GoalAssignment_1
            {
            pushFollow(FOLLOW_rule__GoalStep__GoalAssignment_1_in_rule__GoalStep__Group__1__Impl22728);
            rule__GoalStep__GoalAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepAccess().getGoalAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GoalStep__Group__1__Impl"


    // $ANTLR start "rule__SendMessage__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11219:1: rule__SendMessage__Group__0 : rule__SendMessage__Group__0__Impl rule__SendMessage__Group__1 ;
    public final void rule__SendMessage__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11223:1: ( rule__SendMessage__Group__0__Impl rule__SendMessage__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11224:2: rule__SendMessage__Group__0__Impl rule__SendMessage__Group__1
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__0__Impl_in_rule__SendMessage__Group__022762);
            rule__SendMessage__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__1_in_rule__SendMessage__Group__022765);
            rule__SendMessage__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__0"


    // $ANTLR start "rule__SendMessage__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11231:1: rule__SendMessage__Group__0__Impl : ( 'send' ) ;
    public final void rule__SendMessage__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11235:1: ( ( 'send' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11236:1: ( 'send' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11236:1: ( 'send' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11237:1: 'send'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getSendKeyword_0()); 
            }
            match(input,73,FOLLOW_73_in_rule__SendMessage__Group__0__Impl22793); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getSendKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__0__Impl"


    // $ANTLR start "rule__SendMessage__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11250:1: rule__SendMessage__Group__1 : rule__SendMessage__Group__1__Impl rule__SendMessage__Group__2 ;
    public final void rule__SendMessage__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11254:1: ( rule__SendMessage__Group__1__Impl rule__SendMessage__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11255:2: rule__SendMessage__Group__1__Impl rule__SendMessage__Group__2
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__1__Impl_in_rule__SendMessage__Group__122824);
            rule__SendMessage__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__2_in_rule__SendMessage__Group__122827);
            rule__SendMessage__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__1"


    // $ANTLR start "rule__SendMessage__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11262:1: rule__SendMessage__Group__1__Impl : ( '(' ) ;
    public final void rule__SendMessage__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11266:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11267:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11267:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11268:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__SendMessage__Group__1__Impl22855); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__1__Impl"


    // $ANTLR start "rule__SendMessage__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11281:1: rule__SendMessage__Group__2 : rule__SendMessage__Group__2__Impl rule__SendMessage__Group__3 ;
    public final void rule__SendMessage__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11285:1: ( rule__SendMessage__Group__2__Impl rule__SendMessage__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11286:2: rule__SendMessage__Group__2__Impl rule__SendMessage__Group__3
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__2__Impl_in_rule__SendMessage__Group__222886);
            rule__SendMessage__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__3_in_rule__SendMessage__Group__222889);
            rule__SendMessage__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__2"


    // $ANTLR start "rule__SendMessage__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11293:1: rule__SendMessage__Group__2__Impl : ( ( rule__SendMessage__PerformativeAssignment_2 ) ) ;
    public final void rule__SendMessage__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11297:1: ( ( ( rule__SendMessage__PerformativeAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11298:1: ( ( rule__SendMessage__PerformativeAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11298:1: ( ( rule__SendMessage__PerformativeAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11299:1: ( rule__SendMessage__PerformativeAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getPerformativeAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11300:1: ( rule__SendMessage__PerformativeAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11300:2: rule__SendMessage__PerformativeAssignment_2
            {
            pushFollow(FOLLOW_rule__SendMessage__PerformativeAssignment_2_in_rule__SendMessage__Group__2__Impl22916);
            rule__SendMessage__PerformativeAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getPerformativeAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__2__Impl"


    // $ANTLR start "rule__SendMessage__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11310:1: rule__SendMessage__Group__3 : rule__SendMessage__Group__3__Impl rule__SendMessage__Group__4 ;
    public final void rule__SendMessage__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11314:1: ( rule__SendMessage__Group__3__Impl rule__SendMessage__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11315:2: rule__SendMessage__Group__3__Impl rule__SendMessage__Group__4
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__3__Impl_in_rule__SendMessage__Group__322946);
            rule__SendMessage__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__4_in_rule__SendMessage__Group__322949);
            rule__SendMessage__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__3"


    // $ANTLR start "rule__SendMessage__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11322:1: rule__SendMessage__Group__3__Impl : ( ',' ) ;
    public final void rule__SendMessage__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11326:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11327:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11327:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11328:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getCommaKeyword_3()); 
            }
            match(input,45,FOLLOW_45_in_rule__SendMessage__Group__3__Impl22977); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__3__Impl"


    // $ANTLR start "rule__SendMessage__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11341:1: rule__SendMessage__Group__4 : rule__SendMessage__Group__4__Impl rule__SendMessage__Group__5 ;
    public final void rule__SendMessage__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11345:1: ( rule__SendMessage__Group__4__Impl rule__SendMessage__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11346:2: rule__SendMessage__Group__4__Impl rule__SendMessage__Group__5
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__4__Impl_in_rule__SendMessage__Group__423008);
            rule__SendMessage__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__5_in_rule__SendMessage__Group__423011);
            rule__SendMessage__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__4"


    // $ANTLR start "rule__SendMessage__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11353:1: rule__SendMessage__Group__4__Impl : ( ( rule__SendMessage__AgentAssignment_4 ) ) ;
    public final void rule__SendMessage__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11357:1: ( ( ( rule__SendMessage__AgentAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11358:1: ( ( rule__SendMessage__AgentAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11358:1: ( ( rule__SendMessage__AgentAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11359:1: ( rule__SendMessage__AgentAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getAgentAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11360:1: ( rule__SendMessage__AgentAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11360:2: rule__SendMessage__AgentAssignment_4
            {
            pushFollow(FOLLOW_rule__SendMessage__AgentAssignment_4_in_rule__SendMessage__Group__4__Impl23038);
            rule__SendMessage__AgentAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getAgentAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__4__Impl"


    // $ANTLR start "rule__SendMessage__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11370:1: rule__SendMessage__Group__5 : rule__SendMessage__Group__5__Impl rule__SendMessage__Group__6 ;
    public final void rule__SendMessage__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11374:1: ( rule__SendMessage__Group__5__Impl rule__SendMessage__Group__6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11375:2: rule__SendMessage__Group__5__Impl rule__SendMessage__Group__6
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__5__Impl_in_rule__SendMessage__Group__523068);
            rule__SendMessage__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__6_in_rule__SendMessage__Group__523071);
            rule__SendMessage__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__5"


    // $ANTLR start "rule__SendMessage__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11382:1: rule__SendMessage__Group__5__Impl : ( ',' ) ;
    public final void rule__SendMessage__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11386:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11387:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11387:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11388:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getCommaKeyword_5()); 
            }
            match(input,45,FOLLOW_45_in_rule__SendMessage__Group__5__Impl23099); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getCommaKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__5__Impl"


    // $ANTLR start "rule__SendMessage__Group__6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11401:1: rule__SendMessage__Group__6 : rule__SendMessage__Group__6__Impl rule__SendMessage__Group__7 ;
    public final void rule__SendMessage__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11405:1: ( rule__SendMessage__Group__6__Impl rule__SendMessage__Group__7 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11406:2: rule__SendMessage__Group__6__Impl rule__SendMessage__Group__7
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__6__Impl_in_rule__SendMessage__Group__623130);
            rule__SendMessage__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__SendMessage__Group__7_in_rule__SendMessage__Group__623133);
            rule__SendMessage__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__6"


    // $ANTLR start "rule__SendMessage__Group__6__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11413:1: rule__SendMessage__Group__6__Impl : ( ( rule__SendMessage__ContentAssignment_6 ) ) ;
    public final void rule__SendMessage__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11417:1: ( ( ( rule__SendMessage__ContentAssignment_6 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11418:1: ( ( rule__SendMessage__ContentAssignment_6 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11418:1: ( ( rule__SendMessage__ContentAssignment_6 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11419:1: ( rule__SendMessage__ContentAssignment_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getContentAssignment_6()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11420:1: ( rule__SendMessage__ContentAssignment_6 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11420:2: rule__SendMessage__ContentAssignment_6
            {
            pushFollow(FOLLOW_rule__SendMessage__ContentAssignment_6_in_rule__SendMessage__Group__6__Impl23160);
            rule__SendMessage__ContentAssignment_6();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getContentAssignment_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__6__Impl"


    // $ANTLR start "rule__SendMessage__Group__7"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11430:1: rule__SendMessage__Group__7 : rule__SendMessage__Group__7__Impl ;
    public final void rule__SendMessage__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11434:1: ( rule__SendMessage__Group__7__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11435:2: rule__SendMessage__Group__7__Impl
            {
            pushFollow(FOLLOW_rule__SendMessage__Group__7__Impl_in_rule__SendMessage__Group__723190);
            rule__SendMessage__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__7"


    // $ANTLR start "rule__SendMessage__Group__7__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11441:1: rule__SendMessage__Group__7__Impl : ( ')' ) ;
    public final void rule__SendMessage__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11445:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11446:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11446:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11447:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getRightParenthesisKeyword_7()); 
            }
            match(input,43,FOLLOW_43_in_rule__SendMessage__Group__7__Impl23218); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getRightParenthesisKeyword_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__Group__7__Impl"


    // $ANTLR start "rule__EISSetup__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11476:1: rule__EISSetup__Group__0 : rule__EISSetup__Group__0__Impl rule__EISSetup__Group__1 ;
    public final void rule__EISSetup__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11480:1: ( rule__EISSetup__Group__0__Impl rule__EISSetup__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11481:2: rule__EISSetup__Group__0__Impl rule__EISSetup__Group__1
            {
            pushFollow(FOLLOW_rule__EISSetup__Group__0__Impl_in_rule__EISSetup__Group__023265);
            rule__EISSetup__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISSetup__Group__1_in_rule__EISSetup__Group__023268);
            rule__EISSetup__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__0"


    // $ANTLR start "rule__EISSetup__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11488:1: rule__EISSetup__Group__0__Impl : ( 'eis_setup' ) ;
    public final void rule__EISSetup__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11492:1: ( ( 'eis_setup' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11493:1: ( 'eis_setup' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11493:1: ( 'eis_setup' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11494:1: 'eis_setup'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getEis_setupKeyword_0()); 
            }
            match(input,74,FOLLOW_74_in_rule__EISSetup__Group__0__Impl23296); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getEis_setupKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__0__Impl"


    // $ANTLR start "rule__EISSetup__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11507:1: rule__EISSetup__Group__1 : rule__EISSetup__Group__1__Impl rule__EISSetup__Group__2 ;
    public final void rule__EISSetup__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11511:1: ( rule__EISSetup__Group__1__Impl rule__EISSetup__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11512:2: rule__EISSetup__Group__1__Impl rule__EISSetup__Group__2
            {
            pushFollow(FOLLOW_rule__EISSetup__Group__1__Impl_in_rule__EISSetup__Group__123327);
            rule__EISSetup__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISSetup__Group__2_in_rule__EISSetup__Group__123330);
            rule__EISSetup__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__1"


    // $ANTLR start "rule__EISSetup__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11519:1: rule__EISSetup__Group__1__Impl : ( '(' ) ;
    public final void rule__EISSetup__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11523:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11524:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11524:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11525:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__EISSetup__Group__1__Impl23358); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__1__Impl"


    // $ANTLR start "rule__EISSetup__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11538:1: rule__EISSetup__Group__2 : rule__EISSetup__Group__2__Impl rule__EISSetup__Group__3 ;
    public final void rule__EISSetup__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11542:1: ( rule__EISSetup__Group__2__Impl rule__EISSetup__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11543:2: rule__EISSetup__Group__2__Impl rule__EISSetup__Group__3
            {
            pushFollow(FOLLOW_rule__EISSetup__Group__2__Impl_in_rule__EISSetup__Group__223389);
            rule__EISSetup__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISSetup__Group__3_in_rule__EISSetup__Group__223392);
            rule__EISSetup__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__2"


    // $ANTLR start "rule__EISSetup__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11550:1: rule__EISSetup__Group__2__Impl : ( ( rule__EISSetup__IdAssignment_2 ) ) ;
    public final void rule__EISSetup__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11554:1: ( ( ( rule__EISSetup__IdAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11555:1: ( ( rule__EISSetup__IdAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11555:1: ( ( rule__EISSetup__IdAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11556:1: ( rule__EISSetup__IdAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getIdAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11557:1: ( rule__EISSetup__IdAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11557:2: rule__EISSetup__IdAssignment_2
            {
            pushFollow(FOLLOW_rule__EISSetup__IdAssignment_2_in_rule__EISSetup__Group__2__Impl23419);
            rule__EISSetup__IdAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getIdAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__2__Impl"


    // $ANTLR start "rule__EISSetup__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11567:1: rule__EISSetup__Group__3 : rule__EISSetup__Group__3__Impl rule__EISSetup__Group__4 ;
    public final void rule__EISSetup__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11571:1: ( rule__EISSetup__Group__3__Impl rule__EISSetup__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11572:2: rule__EISSetup__Group__3__Impl rule__EISSetup__Group__4
            {
            pushFollow(FOLLOW_rule__EISSetup__Group__3__Impl_in_rule__EISSetup__Group__323449);
            rule__EISSetup__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISSetup__Group__4_in_rule__EISSetup__Group__323452);
            rule__EISSetup__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__3"


    // $ANTLR start "rule__EISSetup__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11579:1: rule__EISSetup__Group__3__Impl : ( ( rule__EISSetup__Group_3__0 )? ) ;
    public final void rule__EISSetup__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11583:1: ( ( ( rule__EISSetup__Group_3__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11584:1: ( ( rule__EISSetup__Group_3__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11584:1: ( ( rule__EISSetup__Group_3__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11585:1: ( rule__EISSetup__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getGroup_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11586:1: ( rule__EISSetup__Group_3__0 )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( (LA65_0==45) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11586:2: rule__EISSetup__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__EISSetup__Group_3__0_in_rule__EISSetup__Group__3__Impl23479);
                    rule__EISSetup__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__3__Impl"


    // $ANTLR start "rule__EISSetup__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11596:1: rule__EISSetup__Group__4 : rule__EISSetup__Group__4__Impl ;
    public final void rule__EISSetup__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11600:1: ( rule__EISSetup__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11601:2: rule__EISSetup__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__EISSetup__Group__4__Impl_in_rule__EISSetup__Group__423510);
            rule__EISSetup__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__4"


    // $ANTLR start "rule__EISSetup__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11607:1: rule__EISSetup__Group__4__Impl : ( ')' ) ;
    public final void rule__EISSetup__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11611:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11612:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11612:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11613:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getRightParenthesisKeyword_4()); 
            }
            match(input,43,FOLLOW_43_in_rule__EISSetup__Group__4__Impl23538); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getRightParenthesisKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group__4__Impl"


    // $ANTLR start "rule__EISSetup__Group_3__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11636:1: rule__EISSetup__Group_3__0 : rule__EISSetup__Group_3__0__Impl rule__EISSetup__Group_3__1 ;
    public final void rule__EISSetup__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11640:1: ( rule__EISSetup__Group_3__0__Impl rule__EISSetup__Group_3__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11641:2: rule__EISSetup__Group_3__0__Impl rule__EISSetup__Group_3__1
            {
            pushFollow(FOLLOW_rule__EISSetup__Group_3__0__Impl_in_rule__EISSetup__Group_3__023579);
            rule__EISSetup__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISSetup__Group_3__1_in_rule__EISSetup__Group_3__023582);
            rule__EISSetup__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group_3__0"


    // $ANTLR start "rule__EISSetup__Group_3__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11648:1: rule__EISSetup__Group_3__0__Impl : ( ',' ) ;
    public final void rule__EISSetup__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11652:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11653:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11653:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11654:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getCommaKeyword_3_0()); 
            }
            match(input,45,FOLLOW_45_in_rule__EISSetup__Group_3__0__Impl23610); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getCommaKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group_3__0__Impl"


    // $ANTLR start "rule__EISSetup__Group_3__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11667:1: rule__EISSetup__Group_3__1 : rule__EISSetup__Group_3__1__Impl ;
    public final void rule__EISSetup__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11671:1: ( rule__EISSetup__Group_3__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11672:2: rule__EISSetup__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__EISSetup__Group_3__1__Impl_in_rule__EISSetup__Group_3__123641);
            rule__EISSetup__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group_3__1"


    // $ANTLR start "rule__EISSetup__Group_3__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11678:1: rule__EISSetup__Group_3__1__Impl : ( ( rule__EISSetup__JarAssignment_3_1 ) ) ;
    public final void rule__EISSetup__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11682:1: ( ( ( rule__EISSetup__JarAssignment_3_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11683:1: ( ( rule__EISSetup__JarAssignment_3_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11683:1: ( ( rule__EISSetup__JarAssignment_3_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11684:1: ( rule__EISSetup__JarAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getJarAssignment_3_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11685:1: ( rule__EISSetup__JarAssignment_3_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11685:2: rule__EISSetup__JarAssignment_3_1
            {
            pushFollow(FOLLOW_rule__EISSetup__JarAssignment_3_1_in_rule__EISSetup__Group_3__1__Impl23668);
            rule__EISSetup__JarAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getJarAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__Group_3__1__Impl"


    // $ANTLR start "rule__EISPerform__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11699:1: rule__EISPerform__Group__0 : rule__EISPerform__Group__0__Impl rule__EISPerform__Group__1 ;
    public final void rule__EISPerform__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11703:1: ( rule__EISPerform__Group__0__Impl rule__EISPerform__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11704:2: rule__EISPerform__Group__0__Impl rule__EISPerform__Group__1
            {
            pushFollow(FOLLOW_rule__EISPerform__Group__0__Impl_in_rule__EISPerform__Group__023702);
            rule__EISPerform__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISPerform__Group__1_in_rule__EISPerform__Group__023705);
            rule__EISPerform__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__0"


    // $ANTLR start "rule__EISPerform__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11711:1: rule__EISPerform__Group__0__Impl : ( 'eis_perform' ) ;
    public final void rule__EISPerform__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11715:1: ( ( 'eis_perform' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11716:1: ( 'eis_perform' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11716:1: ( 'eis_perform' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11717:1: 'eis_perform'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getEis_performKeyword_0()); 
            }
            match(input,75,FOLLOW_75_in_rule__EISPerform__Group__0__Impl23733); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getEis_performKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__0__Impl"


    // $ANTLR start "rule__EISPerform__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11730:1: rule__EISPerform__Group__1 : rule__EISPerform__Group__1__Impl rule__EISPerform__Group__2 ;
    public final void rule__EISPerform__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11734:1: ( rule__EISPerform__Group__1__Impl rule__EISPerform__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11735:2: rule__EISPerform__Group__1__Impl rule__EISPerform__Group__2
            {
            pushFollow(FOLLOW_rule__EISPerform__Group__1__Impl_in_rule__EISPerform__Group__123764);
            rule__EISPerform__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISPerform__Group__2_in_rule__EISPerform__Group__123767);
            rule__EISPerform__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__1"


    // $ANTLR start "rule__EISPerform__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11742:1: rule__EISPerform__Group__1__Impl : ( '(' ) ;
    public final void rule__EISPerform__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11746:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11747:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11747:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11748:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__EISPerform__Group__1__Impl23795); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__1__Impl"


    // $ANTLR start "rule__EISPerform__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11761:1: rule__EISPerform__Group__2 : rule__EISPerform__Group__2__Impl rule__EISPerform__Group__3 ;
    public final void rule__EISPerform__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11765:1: ( rule__EISPerform__Group__2__Impl rule__EISPerform__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11766:2: rule__EISPerform__Group__2__Impl rule__EISPerform__Group__3
            {
            pushFollow(FOLLOW_rule__EISPerform__Group__2__Impl_in_rule__EISPerform__Group__223826);
            rule__EISPerform__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISPerform__Group__3_in_rule__EISPerform__Group__223829);
            rule__EISPerform__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__2"


    // $ANTLR start "rule__EISPerform__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11773:1: rule__EISPerform__Group__2__Impl : ( ( rule__EISPerform__Group_2__0 )? ) ;
    public final void rule__EISPerform__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11777:1: ( ( ( rule__EISPerform__Group_2__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11778:1: ( ( rule__EISPerform__Group_2__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11778:1: ( ( rule__EISPerform__Group_2__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11779:1: ( rule__EISPerform__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getGroup_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11780:1: ( rule__EISPerform__Group_2__0 )?
            int alt66=2;
            int LA66_0 = input.LA(1);

            if ( (LA66_0==RULE_STRING) ) {
                alt66=1;
            }
            switch (alt66) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11780:2: rule__EISPerform__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__EISPerform__Group_2__0_in_rule__EISPerform__Group__2__Impl23856);
                    rule__EISPerform__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__2__Impl"


    // $ANTLR start "rule__EISPerform__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11790:1: rule__EISPerform__Group__3 : rule__EISPerform__Group__3__Impl rule__EISPerform__Group__4 ;
    public final void rule__EISPerform__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11794:1: ( rule__EISPerform__Group__3__Impl rule__EISPerform__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11795:2: rule__EISPerform__Group__3__Impl rule__EISPerform__Group__4
            {
            pushFollow(FOLLOW_rule__EISPerform__Group__3__Impl_in_rule__EISPerform__Group__323887);
            rule__EISPerform__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISPerform__Group__4_in_rule__EISPerform__Group__323890);
            rule__EISPerform__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__3"


    // $ANTLR start "rule__EISPerform__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11802:1: rule__EISPerform__Group__3__Impl : ( ( rule__EISPerform__ActionAssignment_3 ) ) ;
    public final void rule__EISPerform__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11806:1: ( ( ( rule__EISPerform__ActionAssignment_3 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11807:1: ( ( rule__EISPerform__ActionAssignment_3 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11807:1: ( ( rule__EISPerform__ActionAssignment_3 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11808:1: ( rule__EISPerform__ActionAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getActionAssignment_3()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11809:1: ( rule__EISPerform__ActionAssignment_3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11809:2: rule__EISPerform__ActionAssignment_3
            {
            pushFollow(FOLLOW_rule__EISPerform__ActionAssignment_3_in_rule__EISPerform__Group__3__Impl23917);
            rule__EISPerform__ActionAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getActionAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__3__Impl"


    // $ANTLR start "rule__EISPerform__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11819:1: rule__EISPerform__Group__4 : rule__EISPerform__Group__4__Impl ;
    public final void rule__EISPerform__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11823:1: ( rule__EISPerform__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11824:2: rule__EISPerform__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__EISPerform__Group__4__Impl_in_rule__EISPerform__Group__423947);
            rule__EISPerform__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__4"


    // $ANTLR start "rule__EISPerform__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11830:1: rule__EISPerform__Group__4__Impl : ( ')' ) ;
    public final void rule__EISPerform__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11834:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11835:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11835:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11836:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getRightParenthesisKeyword_4()); 
            }
            match(input,43,FOLLOW_43_in_rule__EISPerform__Group__4__Impl23975); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getRightParenthesisKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group__4__Impl"


    // $ANTLR start "rule__EISPerform__Group_2__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11859:1: rule__EISPerform__Group_2__0 : rule__EISPerform__Group_2__0__Impl rule__EISPerform__Group_2__1 ;
    public final void rule__EISPerform__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11863:1: ( rule__EISPerform__Group_2__0__Impl rule__EISPerform__Group_2__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11864:2: rule__EISPerform__Group_2__0__Impl rule__EISPerform__Group_2__1
            {
            pushFollow(FOLLOW_rule__EISPerform__Group_2__0__Impl_in_rule__EISPerform__Group_2__024016);
            rule__EISPerform__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__EISPerform__Group_2__1_in_rule__EISPerform__Group_2__024019);
            rule__EISPerform__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group_2__0"


    // $ANTLR start "rule__EISPerform__Group_2__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11871:1: rule__EISPerform__Group_2__0__Impl : ( ( rule__EISPerform__IdAssignment_2_0 ) ) ;
    public final void rule__EISPerform__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11875:1: ( ( ( rule__EISPerform__IdAssignment_2_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11876:1: ( ( rule__EISPerform__IdAssignment_2_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11876:1: ( ( rule__EISPerform__IdAssignment_2_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11877:1: ( rule__EISPerform__IdAssignment_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getIdAssignment_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11878:1: ( rule__EISPerform__IdAssignment_2_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11878:2: rule__EISPerform__IdAssignment_2_0
            {
            pushFollow(FOLLOW_rule__EISPerform__IdAssignment_2_0_in_rule__EISPerform__Group_2__0__Impl24046);
            rule__EISPerform__IdAssignment_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getIdAssignment_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group_2__0__Impl"


    // $ANTLR start "rule__EISPerform__Group_2__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11888:1: rule__EISPerform__Group_2__1 : rule__EISPerform__Group_2__1__Impl ;
    public final void rule__EISPerform__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11892:1: ( rule__EISPerform__Group_2__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11893:2: rule__EISPerform__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__EISPerform__Group_2__1__Impl_in_rule__EISPerform__Group_2__124076);
            rule__EISPerform__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group_2__1"


    // $ANTLR start "rule__EISPerform__Group_2__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11899:1: rule__EISPerform__Group_2__1__Impl : ( ',' ) ;
    public final void rule__EISPerform__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11903:1: ( ( ',' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11904:1: ( ',' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11904:1: ( ',' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11905:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getCommaKeyword_2_1()); 
            }
            match(input,45,FOLLOW_45_in_rule__EISPerform__Group_2__1__Impl24104); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getCommaKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__Group_2__1__Impl"


    // $ANTLR start "rule__If__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11922:1: rule__If__Group__0 : rule__If__Group__0__Impl rule__If__Group__1 ;
    public final void rule__If__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11926:1: ( rule__If__Group__0__Impl rule__If__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11927:2: rule__If__Group__0__Impl rule__If__Group__1
            {
            pushFollow(FOLLOW_rule__If__Group__0__Impl_in_rule__If__Group__024139);
            rule__If__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__If__Group__1_in_rule__If__Group__024142);
            rule__If__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__0"


    // $ANTLR start "rule__If__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11934:1: rule__If__Group__0__Impl : ( 'if' ) ;
    public final void rule__If__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11938:1: ( ( 'if' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11939:1: ( 'if' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11939:1: ( 'if' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11940:1: 'if'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getIfKeyword_0()); 
            }
            match(input,76,FOLLOW_76_in_rule__If__Group__0__Impl24170); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getIfKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__0__Impl"


    // $ANTLR start "rule__If__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11953:1: rule__If__Group__1 : rule__If__Group__1__Impl rule__If__Group__2 ;
    public final void rule__If__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11957:1: ( rule__If__Group__1__Impl rule__If__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11958:2: rule__If__Group__1__Impl rule__If__Group__2
            {
            pushFollow(FOLLOW_rule__If__Group__1__Impl_in_rule__If__Group__124201);
            rule__If__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__If__Group__2_in_rule__If__Group__124204);
            rule__If__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__1"


    // $ANTLR start "rule__If__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11965:1: rule__If__Group__1__Impl : ( '(' ) ;
    public final void rule__If__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11969:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11970:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11970:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11971:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__If__Group__1__Impl24232); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__1__Impl"


    // $ANTLR start "rule__If__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11984:1: rule__If__Group__2 : rule__If__Group__2__Impl rule__If__Group__3 ;
    public final void rule__If__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11988:1: ( rule__If__Group__2__Impl rule__If__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11989:2: rule__If__Group__2__Impl rule__If__Group__3
            {
            pushFollow(FOLLOW_rule__If__Group__2__Impl_in_rule__If__Group__224263);
            rule__If__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__If__Group__3_in_rule__If__Group__224266);
            rule__If__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__2"


    // $ANTLR start "rule__If__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:11996:1: rule__If__Group__2__Impl : ( ( rule__If__GuardAssignment_2 ) ) ;
    public final void rule__If__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12000:1: ( ( ( rule__If__GuardAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12001:1: ( ( rule__If__GuardAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12001:1: ( ( rule__If__GuardAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12002:1: ( rule__If__GuardAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getGuardAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12003:1: ( rule__If__GuardAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12003:2: rule__If__GuardAssignment_2
            {
            pushFollow(FOLLOW_rule__If__GuardAssignment_2_in_rule__If__Group__2__Impl24293);
            rule__If__GuardAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getGuardAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__2__Impl"


    // $ANTLR start "rule__If__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12013:1: rule__If__Group__3 : rule__If__Group__3__Impl rule__If__Group__4 ;
    public final void rule__If__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12017:1: ( rule__If__Group__3__Impl rule__If__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12018:2: rule__If__Group__3__Impl rule__If__Group__4
            {
            pushFollow(FOLLOW_rule__If__Group__3__Impl_in_rule__If__Group__324323);
            rule__If__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__If__Group__4_in_rule__If__Group__324326);
            rule__If__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__3"


    // $ANTLR start "rule__If__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12025:1: rule__If__Group__3__Impl : ( ')' ) ;
    public final void rule__If__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12029:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12030:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12030:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12031:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__If__Group__3__Impl24354); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__3__Impl"


    // $ANTLR start "rule__If__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12044:1: rule__If__Group__4 : rule__If__Group__4__Impl rule__If__Group__5 ;
    public final void rule__If__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12048:1: ( rule__If__Group__4__Impl rule__If__Group__5 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12049:2: rule__If__Group__4__Impl rule__If__Group__5
            {
            pushFollow(FOLLOW_rule__If__Group__4__Impl_in_rule__If__Group__424385);
            rule__If__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__If__Group__5_in_rule__If__Group__424388);
            rule__If__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__4"


    // $ANTLR start "rule__If__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12056:1: rule__If__Group__4__Impl : ( ( rule__If__IfStepAssignment_4 ) ) ;
    public final void rule__If__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12060:1: ( ( ( rule__If__IfStepAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12061:1: ( ( rule__If__IfStepAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12061:1: ( ( rule__If__IfStepAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12062:1: ( rule__If__IfStepAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getIfStepAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12063:1: ( rule__If__IfStepAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12063:2: rule__If__IfStepAssignment_4
            {
            pushFollow(FOLLOW_rule__If__IfStepAssignment_4_in_rule__If__Group__4__Impl24415);
            rule__If__IfStepAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getIfStepAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__4__Impl"


    // $ANTLR start "rule__If__Group__5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12073:1: rule__If__Group__5 : rule__If__Group__5__Impl ;
    public final void rule__If__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12077:1: ( rule__If__Group__5__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12078:2: rule__If__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__If__Group__5__Impl_in_rule__If__Group__524445);
            rule__If__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__5"


    // $ANTLR start "rule__If__Group__5__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12084:1: rule__If__Group__5__Impl : ( ( rule__If__Group_5__0 )? ) ;
    public final void rule__If__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12088:1: ( ( ( rule__If__Group_5__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12089:1: ( ( rule__If__Group_5__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12089:1: ( ( rule__If__Group_5__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12090:1: ( rule__If__Group_5__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getGroup_5()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12091:1: ( rule__If__Group_5__0 )?
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==77) ) {
                int LA67_1 = input.LA(2);

                if ( (synpred113_InternalAstra()) ) {
                    alt67=1;
                }
            }
            switch (alt67) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12091:2: rule__If__Group_5__0
                    {
                    pushFollow(FOLLOW_rule__If__Group_5__0_in_rule__If__Group__5__Impl24472);
                    rule__If__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getGroup_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group__5__Impl"


    // $ANTLR start "rule__If__Group_5__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12113:1: rule__If__Group_5__0 : rule__If__Group_5__0__Impl rule__If__Group_5__1 ;
    public final void rule__If__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12117:1: ( rule__If__Group_5__0__Impl rule__If__Group_5__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12118:2: rule__If__Group_5__0__Impl rule__If__Group_5__1
            {
            pushFollow(FOLLOW_rule__If__Group_5__0__Impl_in_rule__If__Group_5__024515);
            rule__If__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__If__Group_5__1_in_rule__If__Group_5__024518);
            rule__If__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group_5__0"


    // $ANTLR start "rule__If__Group_5__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12125:1: rule__If__Group_5__0__Impl : ( ( 'else' ) ) ;
    public final void rule__If__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12129:1: ( ( ( 'else' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12130:1: ( ( 'else' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12130:1: ( ( 'else' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12131:1: ( 'else' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getElseKeyword_5_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12132:1: ( 'else' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12133:2: 'else'
            {
            match(input,77,FOLLOW_77_in_rule__If__Group_5__0__Impl24547); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getElseKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group_5__0__Impl"


    // $ANTLR start "rule__If__Group_5__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12144:1: rule__If__Group_5__1 : rule__If__Group_5__1__Impl ;
    public final void rule__If__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12148:1: ( rule__If__Group_5__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12149:2: rule__If__Group_5__1__Impl
            {
            pushFollow(FOLLOW_rule__If__Group_5__1__Impl_in_rule__If__Group_5__124579);
            rule__If__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group_5__1"


    // $ANTLR start "rule__If__Group_5__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12155:1: rule__If__Group_5__1__Impl : ( ( rule__If__ElseStepAssignment_5_1 ) ) ;
    public final void rule__If__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12159:1: ( ( ( rule__If__ElseStepAssignment_5_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12160:1: ( ( rule__If__ElseStepAssignment_5_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12160:1: ( ( rule__If__ElseStepAssignment_5_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12161:1: ( rule__If__ElseStepAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getElseStepAssignment_5_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12162:1: ( rule__If__ElseStepAssignment_5_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12162:2: rule__If__ElseStepAssignment_5_1
            {
            pushFollow(FOLLOW_rule__If__ElseStepAssignment_5_1_in_rule__If__Group_5__1__Impl24606);
            rule__If__ElseStepAssignment_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getElseStepAssignment_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__Group_5__1__Impl"


    // $ANTLR start "rule__LibraryAction__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12176:1: rule__LibraryAction__Group__0 : rule__LibraryAction__Group__0__Impl rule__LibraryAction__Group__1 ;
    public final void rule__LibraryAction__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12180:1: ( rule__LibraryAction__Group__0__Impl rule__LibraryAction__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12181:2: rule__LibraryAction__Group__0__Impl rule__LibraryAction__Group__1
            {
            pushFollow(FOLLOW_rule__LibraryAction__Group__0__Impl_in_rule__LibraryAction__Group__024640);
            rule__LibraryAction__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LibraryAction__Group__1_in_rule__LibraryAction__Group__024643);
            rule__LibraryAction__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__Group__0"


    // $ANTLR start "rule__LibraryAction__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12188:1: rule__LibraryAction__Group__0__Impl : ( ( rule__LibraryAction__ModuleAssignment_0 ) ) ;
    public final void rule__LibraryAction__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12192:1: ( ( ( rule__LibraryAction__ModuleAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12193:1: ( ( rule__LibraryAction__ModuleAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12193:1: ( ( rule__LibraryAction__ModuleAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12194:1: ( rule__LibraryAction__ModuleAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionAccess().getModuleAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12195:1: ( rule__LibraryAction__ModuleAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12195:2: rule__LibraryAction__ModuleAssignment_0
            {
            pushFollow(FOLLOW_rule__LibraryAction__ModuleAssignment_0_in_rule__LibraryAction__Group__0__Impl24670);
            rule__LibraryAction__ModuleAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionAccess().getModuleAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__Group__0__Impl"


    // $ANTLR start "rule__LibraryAction__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12205:1: rule__LibraryAction__Group__1 : rule__LibraryAction__Group__1__Impl rule__LibraryAction__Group__2 ;
    public final void rule__LibraryAction__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12209:1: ( rule__LibraryAction__Group__1__Impl rule__LibraryAction__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12210:2: rule__LibraryAction__Group__1__Impl rule__LibraryAction__Group__2
            {
            pushFollow(FOLLOW_rule__LibraryAction__Group__1__Impl_in_rule__LibraryAction__Group__124700);
            rule__LibraryAction__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__LibraryAction__Group__2_in_rule__LibraryAction__Group__124703);
            rule__LibraryAction__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__Group__1"


    // $ANTLR start "rule__LibraryAction__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12217:1: rule__LibraryAction__Group__1__Impl : ( '.' ) ;
    public final void rule__LibraryAction__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12221:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12222:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12222:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12223:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionAccess().getFullStopKeyword_1()); 
            }
            match(input,40,FOLLOW_40_in_rule__LibraryAction__Group__1__Impl24731); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__Group__1__Impl"


    // $ANTLR start "rule__LibraryAction__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12236:1: rule__LibraryAction__Group__2 : rule__LibraryAction__Group__2__Impl ;
    public final void rule__LibraryAction__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12240:1: ( rule__LibraryAction__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12241:2: rule__LibraryAction__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__LibraryAction__Group__2__Impl_in_rule__LibraryAction__Group__224762);
            rule__LibraryAction__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__Group__2"


    // $ANTLR start "rule__LibraryAction__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12247:1: rule__LibraryAction__Group__2__Impl : ( ( rule__LibraryAction__ActionAssignment_2 ) ) ;
    public final void rule__LibraryAction__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12251:1: ( ( ( rule__LibraryAction__ActionAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12252:1: ( ( rule__LibraryAction__ActionAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12252:1: ( ( rule__LibraryAction__ActionAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12253:1: ( rule__LibraryAction__ActionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionAccess().getActionAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12254:1: ( rule__LibraryAction__ActionAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12254:2: rule__LibraryAction__ActionAssignment_2
            {
            pushFollow(FOLLOW_rule__LibraryAction__ActionAssignment_2_in_rule__LibraryAction__Group__2__Impl24789);
            rule__LibraryAction__ActionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionAccess().getActionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__Group__2__Impl"


    // $ANTLR start "rule__Query__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12270:1: rule__Query__Group__0 : rule__Query__Group__0__Impl rule__Query__Group__1 ;
    public final void rule__Query__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12274:1: ( rule__Query__Group__0__Impl rule__Query__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12275:2: rule__Query__Group__0__Impl rule__Query__Group__1
            {
            pushFollow(FOLLOW_rule__Query__Group__0__Impl_in_rule__Query__Group__024825);
            rule__Query__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Query__Group__1_in_rule__Query__Group__024828);
            rule__Query__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__0"


    // $ANTLR start "rule__Query__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12282:1: rule__Query__Group__0__Impl : ( 'query' ) ;
    public final void rule__Query__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12286:1: ( ( 'query' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12287:1: ( 'query' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12287:1: ( 'query' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12288:1: 'query'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryAccess().getQueryKeyword_0()); 
            }
            match(input,78,FOLLOW_78_in_rule__Query__Group__0__Impl24856); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryAccess().getQueryKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__0__Impl"


    // $ANTLR start "rule__Query__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12301:1: rule__Query__Group__1 : rule__Query__Group__1__Impl rule__Query__Group__2 ;
    public final void rule__Query__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12305:1: ( rule__Query__Group__1__Impl rule__Query__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12306:2: rule__Query__Group__1__Impl rule__Query__Group__2
            {
            pushFollow(FOLLOW_rule__Query__Group__1__Impl_in_rule__Query__Group__124887);
            rule__Query__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Query__Group__2_in_rule__Query__Group__124890);
            rule__Query__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__1"


    // $ANTLR start "rule__Query__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12313:1: rule__Query__Group__1__Impl : ( '(' ) ;
    public final void rule__Query__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12317:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12318:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12318:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12319:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__Query__Group__1__Impl24918); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__1__Impl"


    // $ANTLR start "rule__Query__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12332:1: rule__Query__Group__2 : rule__Query__Group__2__Impl rule__Query__Group__3 ;
    public final void rule__Query__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12336:1: ( rule__Query__Group__2__Impl rule__Query__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12337:2: rule__Query__Group__2__Impl rule__Query__Group__3
            {
            pushFollow(FOLLOW_rule__Query__Group__2__Impl_in_rule__Query__Group__224949);
            rule__Query__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Query__Group__3_in_rule__Query__Group__224952);
            rule__Query__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__2"


    // $ANTLR start "rule__Query__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12344:1: rule__Query__Group__2__Impl : ( ( rule__Query__FormulaAssignment_2 ) ) ;
    public final void rule__Query__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12348:1: ( ( ( rule__Query__FormulaAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12349:1: ( ( rule__Query__FormulaAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12349:1: ( ( rule__Query__FormulaAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12350:1: ( rule__Query__FormulaAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryAccess().getFormulaAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12351:1: ( rule__Query__FormulaAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12351:2: rule__Query__FormulaAssignment_2
            {
            pushFollow(FOLLOW_rule__Query__FormulaAssignment_2_in_rule__Query__Group__2__Impl24979);
            rule__Query__FormulaAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryAccess().getFormulaAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__2__Impl"


    // $ANTLR start "rule__Query__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12361:1: rule__Query__Group__3 : rule__Query__Group__3__Impl ;
    public final void rule__Query__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12365:1: ( rule__Query__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12366:2: rule__Query__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Query__Group__3__Impl_in_rule__Query__Group__325009);
            rule__Query__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__3"


    // $ANTLR start "rule__Query__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12372:1: rule__Query__Group__3__Impl : ( ')' ) ;
    public final void rule__Query__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12376:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12377:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12377:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12378:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__Query__Group__3__Impl25037); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__Group__3__Impl"


    // $ANTLR start "rule__TRActive__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12399:1: rule__TRActive__Group__0 : rule__TRActive__Group__0__Impl rule__TRActive__Group__1 ;
    public final void rule__TRActive__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12403:1: ( rule__TRActive__Group__0__Impl rule__TRActive__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12404:2: rule__TRActive__Group__0__Impl rule__TRActive__Group__1
            {
            pushFollow(FOLLOW_rule__TRActive__Group__0__Impl_in_rule__TRActive__Group__025076);
            rule__TRActive__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TRActive__Group__1_in_rule__TRActive__Group__025079);
            rule__TRActive__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__0"


    // $ANTLR start "rule__TRActive__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12411:1: rule__TRActive__Group__0__Impl : ( 'active' ) ;
    public final void rule__TRActive__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12415:1: ( ( 'active' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12416:1: ( 'active' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12416:1: ( 'active' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12417:1: 'active'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveAccess().getActiveKeyword_0()); 
            }
            match(input,79,FOLLOW_79_in_rule__TRActive__Group__0__Impl25107); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveAccess().getActiveKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__0__Impl"


    // $ANTLR start "rule__TRActive__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12430:1: rule__TRActive__Group__1 : rule__TRActive__Group__1__Impl rule__TRActive__Group__2 ;
    public final void rule__TRActive__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12434:1: ( rule__TRActive__Group__1__Impl rule__TRActive__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12435:2: rule__TRActive__Group__1__Impl rule__TRActive__Group__2
            {
            pushFollow(FOLLOW_rule__TRActive__Group__1__Impl_in_rule__TRActive__Group__125138);
            rule__TRActive__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TRActive__Group__2_in_rule__TRActive__Group__125141);
            rule__TRActive__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__1"


    // $ANTLR start "rule__TRActive__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12442:1: rule__TRActive__Group__1__Impl : ( '(' ) ;
    public final void rule__TRActive__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12446:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12447:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12447:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12448:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TRActive__Group__1__Impl25169); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__1__Impl"


    // $ANTLR start "rule__TRActive__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12461:1: rule__TRActive__Group__2 : rule__TRActive__Group__2__Impl rule__TRActive__Group__3 ;
    public final void rule__TRActive__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12465:1: ( rule__TRActive__Group__2__Impl rule__TRActive__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12466:2: rule__TRActive__Group__2__Impl rule__TRActive__Group__3
            {
            pushFollow(FOLLOW_rule__TRActive__Group__2__Impl_in_rule__TRActive__Group__225200);
            rule__TRActive__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TRActive__Group__3_in_rule__TRActive__Group__225203);
            rule__TRActive__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__2"


    // $ANTLR start "rule__TRActive__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12473:1: rule__TRActive__Group__2__Impl : ( ( rule__TRActive__PredicateAssignment_2 ) ) ;
    public final void rule__TRActive__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12477:1: ( ( ( rule__TRActive__PredicateAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12478:1: ( ( rule__TRActive__PredicateAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12478:1: ( ( rule__TRActive__PredicateAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12479:1: ( rule__TRActive__PredicateAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveAccess().getPredicateAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12480:1: ( rule__TRActive__PredicateAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12480:2: rule__TRActive__PredicateAssignment_2
            {
            pushFollow(FOLLOW_rule__TRActive__PredicateAssignment_2_in_rule__TRActive__Group__2__Impl25230);
            rule__TRActive__PredicateAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveAccess().getPredicateAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__2__Impl"


    // $ANTLR start "rule__TRActive__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12490:1: rule__TRActive__Group__3 : rule__TRActive__Group__3__Impl ;
    public final void rule__TRActive__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12494:1: ( rule__TRActive__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12495:2: rule__TRActive__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TRActive__Group__3__Impl_in_rule__TRActive__Group__325260);
            rule__TRActive__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__3"


    // $ANTLR start "rule__TRActive__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12501:1: rule__TRActive__Group__3__Impl : ( ')' ) ;
    public final void rule__TRActive__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12505:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12506:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12506:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12507:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__TRActive__Group__3__Impl25288); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__Group__3__Impl"


    // $ANTLR start "rule__TRControl__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12528:1: rule__TRControl__Group__0 : rule__TRControl__Group__0__Impl rule__TRControl__Group__1 ;
    public final void rule__TRControl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12532:1: ( rule__TRControl__Group__0__Impl rule__TRControl__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12533:2: rule__TRControl__Group__0__Impl rule__TRControl__Group__1
            {
            pushFollow(FOLLOW_rule__TRControl__Group__0__Impl_in_rule__TRControl__Group__025327);
            rule__TRControl__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TRControl__Group__1_in_rule__TRControl__Group__025330);
            rule__TRControl__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__0"


    // $ANTLR start "rule__TRControl__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12540:1: rule__TRControl__Group__0__Impl : ( ( rule__TRControl__ModeAssignment_0 ) ) ;
    public final void rule__TRControl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12544:1: ( ( ( rule__TRControl__ModeAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12545:1: ( ( rule__TRControl__ModeAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12545:1: ( ( rule__TRControl__ModeAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12546:1: ( rule__TRControl__ModeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getModeAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12547:1: ( rule__TRControl__ModeAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12547:2: rule__TRControl__ModeAssignment_0
            {
            pushFollow(FOLLOW_rule__TRControl__ModeAssignment_0_in_rule__TRControl__Group__0__Impl25357);
            rule__TRControl__ModeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getModeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__0__Impl"


    // $ANTLR start "rule__TRControl__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12557:1: rule__TRControl__Group__1 : rule__TRControl__Group__1__Impl rule__TRControl__Group__2 ;
    public final void rule__TRControl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12561:1: ( rule__TRControl__Group__1__Impl rule__TRControl__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12562:2: rule__TRControl__Group__1__Impl rule__TRControl__Group__2
            {
            pushFollow(FOLLOW_rule__TRControl__Group__1__Impl_in_rule__TRControl__Group__125387);
            rule__TRControl__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TRControl__Group__2_in_rule__TRControl__Group__125390);
            rule__TRControl__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__1"


    // $ANTLR start "rule__TRControl__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12569:1: rule__TRControl__Group__1__Impl : ( '(' ) ;
    public final void rule__TRControl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12573:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12574:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12574:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12575:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__TRControl__Group__1__Impl25418); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__1__Impl"


    // $ANTLR start "rule__TRControl__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12588:1: rule__TRControl__Group__2 : rule__TRControl__Group__2__Impl rule__TRControl__Group__3 ;
    public final void rule__TRControl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12592:1: ( rule__TRControl__Group__2__Impl rule__TRControl__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12593:2: rule__TRControl__Group__2__Impl rule__TRControl__Group__3
            {
            pushFollow(FOLLOW_rule__TRControl__Group__2__Impl_in_rule__TRControl__Group__225449);
            rule__TRControl__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TRControl__Group__3_in_rule__TRControl__Group__225452);
            rule__TRControl__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__2"


    // $ANTLR start "rule__TRControl__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12600:1: rule__TRControl__Group__2__Impl : ( ( rule__TRControl__FunctionAssignment_2 ) ) ;
    public final void rule__TRControl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12604:1: ( ( ( rule__TRControl__FunctionAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12605:1: ( ( rule__TRControl__FunctionAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12605:1: ( ( rule__TRControl__FunctionAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12606:1: ( rule__TRControl__FunctionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getFunctionAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12607:1: ( rule__TRControl__FunctionAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12607:2: rule__TRControl__FunctionAssignment_2
            {
            pushFollow(FOLLOW_rule__TRControl__FunctionAssignment_2_in_rule__TRControl__Group__2__Impl25479);
            rule__TRControl__FunctionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getFunctionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__2__Impl"


    // $ANTLR start "rule__TRControl__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12617:1: rule__TRControl__Group__3 : rule__TRControl__Group__3__Impl ;
    public final void rule__TRControl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12621:1: ( rule__TRControl__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12622:2: rule__TRControl__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__TRControl__Group__3__Impl_in_rule__TRControl__Group__325509);
            rule__TRControl__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__3"


    // $ANTLR start "rule__TRControl__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12628:1: rule__TRControl__Group__3__Impl : ( ')' ) ;
    public final void rule__TRControl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12632:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12633:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12633:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12634:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__TRControl__Group__3__Impl25537); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__Group__3__Impl"


    // $ANTLR start "rule__TypeStep__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12655:1: rule__TypeStep__Group__0 : rule__TypeStep__Group__0__Impl rule__TypeStep__Group__1 ;
    public final void rule__TypeStep__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12659:1: ( rule__TypeStep__Group__0__Impl rule__TypeStep__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12660:2: rule__TypeStep__Group__0__Impl rule__TypeStep__Group__1
            {
            pushFollow(FOLLOW_rule__TypeStep__Group__0__Impl_in_rule__TypeStep__Group__025576);
            rule__TypeStep__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeStep__Group__1_in_rule__TypeStep__Group__025579);
            rule__TypeStep__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group__0"


    // $ANTLR start "rule__TypeStep__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12667:1: rule__TypeStep__Group__0__Impl : ( ( rule__TypeStep__VariableAssignment_0 ) ) ;
    public final void rule__TypeStep__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12671:1: ( ( ( rule__TypeStep__VariableAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12672:1: ( ( rule__TypeStep__VariableAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12672:1: ( ( rule__TypeStep__VariableAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12673:1: ( rule__TypeStep__VariableAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getVariableAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12674:1: ( rule__TypeStep__VariableAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12674:2: rule__TypeStep__VariableAssignment_0
            {
            pushFollow(FOLLOW_rule__TypeStep__VariableAssignment_0_in_rule__TypeStep__Group__0__Impl25606);
            rule__TypeStep__VariableAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getVariableAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group__0__Impl"


    // $ANTLR start "rule__TypeStep__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12684:1: rule__TypeStep__Group__1 : rule__TypeStep__Group__1__Impl ;
    public final void rule__TypeStep__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12688:1: ( rule__TypeStep__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12689:2: rule__TypeStep__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeStep__Group__1__Impl_in_rule__TypeStep__Group__125636);
            rule__TypeStep__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group__1"


    // $ANTLR start "rule__TypeStep__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12695:1: rule__TypeStep__Group__1__Impl : ( ( rule__TypeStep__Group_1__0 )? ) ;
    public final void rule__TypeStep__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12699:1: ( ( ( rule__TypeStep__Group_1__0 )? ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12700:1: ( ( rule__TypeStep__Group_1__0 )? )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12700:1: ( ( rule__TypeStep__Group_1__0 )? )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12701:1: ( rule__TypeStep__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getGroup_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12702:1: ( rule__TypeStep__Group_1__0 )?
            int alt68=2;
            int LA68_0 = input.LA(1);

            if ( (LA68_0==70) ) {
                alt68=1;
            }
            switch (alt68) {
                case 1 :
                    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12702:2: rule__TypeStep__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__TypeStep__Group_1__0_in_rule__TypeStep__Group__1__Impl25663);
                    rule__TypeStep__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group__1__Impl"


    // $ANTLR start "rule__TypeStep__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12716:1: rule__TypeStep__Group_1__0 : rule__TypeStep__Group_1__0__Impl rule__TypeStep__Group_1__1 ;
    public final void rule__TypeStep__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12720:1: ( rule__TypeStep__Group_1__0__Impl rule__TypeStep__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12721:2: rule__TypeStep__Group_1__0__Impl rule__TypeStep__Group_1__1
            {
            pushFollow(FOLLOW_rule__TypeStep__Group_1__0__Impl_in_rule__TypeStep__Group_1__025698);
            rule__TypeStep__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TypeStep__Group_1__1_in_rule__TypeStep__Group_1__025701);
            rule__TypeStep__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group_1__0"


    // $ANTLR start "rule__TypeStep__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12728:1: rule__TypeStep__Group_1__0__Impl : ( '=' ) ;
    public final void rule__TypeStep__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12732:1: ( ( '=' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12733:1: ( '=' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12733:1: ( '=' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12734:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getEqualsSignKeyword_1_0()); 
            }
            match(input,70,FOLLOW_70_in_rule__TypeStep__Group_1__0__Impl25729); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getEqualsSignKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group_1__0__Impl"


    // $ANTLR start "rule__TypeStep__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12747:1: rule__TypeStep__Group_1__1 : rule__TypeStep__Group_1__1__Impl ;
    public final void rule__TypeStep__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12751:1: ( rule__TypeStep__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12752:2: rule__TypeStep__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeStep__Group_1__1__Impl_in_rule__TypeStep__Group_1__125760);
            rule__TypeStep__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group_1__1"


    // $ANTLR start "rule__TypeStep__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12758:1: rule__TypeStep__Group_1__1__Impl : ( ( rule__TypeStep__ValueAssignment_1_1 ) ) ;
    public final void rule__TypeStep__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12762:1: ( ( ( rule__TypeStep__ValueAssignment_1_1 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12763:1: ( ( rule__TypeStep__ValueAssignment_1_1 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12763:1: ( ( rule__TypeStep__ValueAssignment_1_1 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12764:1: ( rule__TypeStep__ValueAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getValueAssignment_1_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12765:1: ( rule__TypeStep__ValueAssignment_1_1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12765:2: rule__TypeStep__ValueAssignment_1_1
            {
            pushFollow(FOLLOW_rule__TypeStep__ValueAssignment_1_1_in_rule__TypeStep__Group_1__1__Impl25787);
            rule__TypeStep__ValueAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getValueAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__Group_1__1__Impl"


    // $ANTLR start "rule__Wait__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12779:1: rule__Wait__Group__0 : rule__Wait__Group__0__Impl rule__Wait__Group__1 ;
    public final void rule__Wait__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12783:1: ( rule__Wait__Group__0__Impl rule__Wait__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12784:2: rule__Wait__Group__0__Impl rule__Wait__Group__1
            {
            pushFollow(FOLLOW_rule__Wait__Group__0__Impl_in_rule__Wait__Group__025821);
            rule__Wait__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Wait__Group__1_in_rule__Wait__Group__025824);
            rule__Wait__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__0"


    // $ANTLR start "rule__Wait__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12791:1: rule__Wait__Group__0__Impl : ( 'wait' ) ;
    public final void rule__Wait__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12795:1: ( ( 'wait' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12796:1: ( 'wait' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12796:1: ( 'wait' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12797:1: 'wait'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitAccess().getWaitKeyword_0()); 
            }
            match(input,80,FOLLOW_80_in_rule__Wait__Group__0__Impl25852); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitAccess().getWaitKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__0__Impl"


    // $ANTLR start "rule__Wait__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12810:1: rule__Wait__Group__1 : rule__Wait__Group__1__Impl rule__Wait__Group__2 ;
    public final void rule__Wait__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12814:1: ( rule__Wait__Group__1__Impl rule__Wait__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12815:2: rule__Wait__Group__1__Impl rule__Wait__Group__2
            {
            pushFollow(FOLLOW_rule__Wait__Group__1__Impl_in_rule__Wait__Group__125883);
            rule__Wait__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Wait__Group__2_in_rule__Wait__Group__125886);
            rule__Wait__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__1"


    // $ANTLR start "rule__Wait__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12822:1: rule__Wait__Group__1__Impl : ( '(' ) ;
    public final void rule__Wait__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12826:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12827:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12827:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12828:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__Wait__Group__1__Impl25914); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__1__Impl"


    // $ANTLR start "rule__Wait__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12841:1: rule__Wait__Group__2 : rule__Wait__Group__2__Impl rule__Wait__Group__3 ;
    public final void rule__Wait__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12845:1: ( rule__Wait__Group__2__Impl rule__Wait__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12846:2: rule__Wait__Group__2__Impl rule__Wait__Group__3
            {
            pushFollow(FOLLOW_rule__Wait__Group__2__Impl_in_rule__Wait__Group__225945);
            rule__Wait__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Wait__Group__3_in_rule__Wait__Group__225948);
            rule__Wait__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__2"


    // $ANTLR start "rule__Wait__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12853:1: rule__Wait__Group__2__Impl : ( ( rule__Wait__FormulaAssignment_2 ) ) ;
    public final void rule__Wait__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12857:1: ( ( ( rule__Wait__FormulaAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12858:1: ( ( rule__Wait__FormulaAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12858:1: ( ( rule__Wait__FormulaAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12859:1: ( rule__Wait__FormulaAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitAccess().getFormulaAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12860:1: ( rule__Wait__FormulaAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12860:2: rule__Wait__FormulaAssignment_2
            {
            pushFollow(FOLLOW_rule__Wait__FormulaAssignment_2_in_rule__Wait__Group__2__Impl25975);
            rule__Wait__FormulaAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitAccess().getFormulaAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__2__Impl"


    // $ANTLR start "rule__Wait__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12870:1: rule__Wait__Group__3 : rule__Wait__Group__3__Impl ;
    public final void rule__Wait__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12874:1: ( rule__Wait__Group__3__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12875:2: rule__Wait__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Wait__Group__3__Impl_in_rule__Wait__Group__326005);
            rule__Wait__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__3"


    // $ANTLR start "rule__Wait__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12881:1: rule__Wait__Group__3__Impl : ( ')' ) ;
    public final void rule__Wait__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12885:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12886:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12886:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12887:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__Wait__Group__3__Impl26033); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__Group__3__Impl"


    // $ANTLR start "rule__When__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12908:1: rule__When__Group__0 : rule__When__Group__0__Impl rule__When__Group__1 ;
    public final void rule__When__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12912:1: ( rule__When__Group__0__Impl rule__When__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12913:2: rule__When__Group__0__Impl rule__When__Group__1
            {
            pushFollow(FOLLOW_rule__When__Group__0__Impl_in_rule__When__Group__026072);
            rule__When__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__When__Group__1_in_rule__When__Group__026075);
            rule__When__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__0"


    // $ANTLR start "rule__When__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12920:1: rule__When__Group__0__Impl : ( 'when' ) ;
    public final void rule__When__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12924:1: ( ( 'when' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12925:1: ( 'when' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12925:1: ( 'when' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12926:1: 'when'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getWhenKeyword_0()); 
            }
            match(input,81,FOLLOW_81_in_rule__When__Group__0__Impl26103); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getWhenKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__0__Impl"


    // $ANTLR start "rule__When__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12939:1: rule__When__Group__1 : rule__When__Group__1__Impl rule__When__Group__2 ;
    public final void rule__When__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12943:1: ( rule__When__Group__1__Impl rule__When__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12944:2: rule__When__Group__1__Impl rule__When__Group__2
            {
            pushFollow(FOLLOW_rule__When__Group__1__Impl_in_rule__When__Group__126134);
            rule__When__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__When__Group__2_in_rule__When__Group__126137);
            rule__When__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__1"


    // $ANTLR start "rule__When__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12951:1: rule__When__Group__1__Impl : ( '(' ) ;
    public final void rule__When__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12955:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12956:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12956:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12957:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__When__Group__1__Impl26165); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__1__Impl"


    // $ANTLR start "rule__When__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12970:1: rule__When__Group__2 : rule__When__Group__2__Impl rule__When__Group__3 ;
    public final void rule__When__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12974:1: ( rule__When__Group__2__Impl rule__When__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12975:2: rule__When__Group__2__Impl rule__When__Group__3
            {
            pushFollow(FOLLOW_rule__When__Group__2__Impl_in_rule__When__Group__226196);
            rule__When__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__When__Group__3_in_rule__When__Group__226199);
            rule__When__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__2"


    // $ANTLR start "rule__When__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12982:1: rule__When__Group__2__Impl : ( ( rule__When__GuardAssignment_2 ) ) ;
    public final void rule__When__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12986:1: ( ( ( rule__When__GuardAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12987:1: ( ( rule__When__GuardAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12987:1: ( ( rule__When__GuardAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12988:1: ( rule__When__GuardAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getGuardAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12989:1: ( rule__When__GuardAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12989:2: rule__When__GuardAssignment_2
            {
            pushFollow(FOLLOW_rule__When__GuardAssignment_2_in_rule__When__Group__2__Impl26226);
            rule__When__GuardAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getGuardAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__2__Impl"


    // $ANTLR start "rule__When__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12999:1: rule__When__Group__3 : rule__When__Group__3__Impl rule__When__Group__4 ;
    public final void rule__When__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13003:1: ( rule__When__Group__3__Impl rule__When__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13004:2: rule__When__Group__3__Impl rule__When__Group__4
            {
            pushFollow(FOLLOW_rule__When__Group__3__Impl_in_rule__When__Group__326256);
            rule__When__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__When__Group__4_in_rule__When__Group__326259);
            rule__When__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__3"


    // $ANTLR start "rule__When__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13011:1: rule__When__Group__3__Impl : ( ')' ) ;
    public final void rule__When__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13015:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13016:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13016:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13017:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__When__Group__3__Impl26287); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__3__Impl"


    // $ANTLR start "rule__When__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13030:1: rule__When__Group__4 : rule__When__Group__4__Impl ;
    public final void rule__When__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13034:1: ( rule__When__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13035:2: rule__When__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__When__Group__4__Impl_in_rule__When__Group__426318);
            rule__When__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__4"


    // $ANTLR start "rule__When__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13041:1: rule__When__Group__4__Impl : ( ( rule__When__BodyAssignment_4 ) ) ;
    public final void rule__When__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13045:1: ( ( ( rule__When__BodyAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13046:1: ( ( rule__When__BodyAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13046:1: ( ( rule__When__BodyAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13047:1: ( rule__When__BodyAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getBodyAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13048:1: ( rule__When__BodyAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13048:2: rule__When__BodyAssignment_4
            {
            pushFollow(FOLLOW_rule__When__BodyAssignment_4_in_rule__When__Group__4__Impl26345);
            rule__When__BodyAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getBodyAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__Group__4__Impl"


    // $ANTLR start "rule__While__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13068:1: rule__While__Group__0 : rule__While__Group__0__Impl rule__While__Group__1 ;
    public final void rule__While__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13072:1: ( rule__While__Group__0__Impl rule__While__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13073:2: rule__While__Group__0__Impl rule__While__Group__1
            {
            pushFollow(FOLLOW_rule__While__Group__0__Impl_in_rule__While__Group__026385);
            rule__While__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__While__Group__1_in_rule__While__Group__026388);
            rule__While__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__0"


    // $ANTLR start "rule__While__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13080:1: rule__While__Group__0__Impl : ( 'while' ) ;
    public final void rule__While__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13084:1: ( ( 'while' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13085:1: ( 'while' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13085:1: ( 'while' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13086:1: 'while'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getWhileKeyword_0()); 
            }
            match(input,82,FOLLOW_82_in_rule__While__Group__0__Impl26416); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getWhileKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__0__Impl"


    // $ANTLR start "rule__While__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13099:1: rule__While__Group__1 : rule__While__Group__1__Impl rule__While__Group__2 ;
    public final void rule__While__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13103:1: ( rule__While__Group__1__Impl rule__While__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13104:2: rule__While__Group__1__Impl rule__While__Group__2
            {
            pushFollow(FOLLOW_rule__While__Group__1__Impl_in_rule__While__Group__126447);
            rule__While__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__While__Group__2_in_rule__While__Group__126450);
            rule__While__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__1"


    // $ANTLR start "rule__While__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13111:1: rule__While__Group__1__Impl : ( '(' ) ;
    public final void rule__While__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13115:1: ( ( '(' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13116:1: ( '(' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13116:1: ( '(' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13117:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,42,FOLLOW_42_in_rule__While__Group__1__Impl26478); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__1__Impl"


    // $ANTLR start "rule__While__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13130:1: rule__While__Group__2 : rule__While__Group__2__Impl rule__While__Group__3 ;
    public final void rule__While__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13134:1: ( rule__While__Group__2__Impl rule__While__Group__3 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13135:2: rule__While__Group__2__Impl rule__While__Group__3
            {
            pushFollow(FOLLOW_rule__While__Group__2__Impl_in_rule__While__Group__226509);
            rule__While__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__While__Group__3_in_rule__While__Group__226512);
            rule__While__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__2"


    // $ANTLR start "rule__While__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13142:1: rule__While__Group__2__Impl : ( ( rule__While__GuardAssignment_2 ) ) ;
    public final void rule__While__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13146:1: ( ( ( rule__While__GuardAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13147:1: ( ( rule__While__GuardAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13147:1: ( ( rule__While__GuardAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13148:1: ( rule__While__GuardAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getGuardAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13149:1: ( rule__While__GuardAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13149:2: rule__While__GuardAssignment_2
            {
            pushFollow(FOLLOW_rule__While__GuardAssignment_2_in_rule__While__Group__2__Impl26539);
            rule__While__GuardAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getGuardAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__2__Impl"


    // $ANTLR start "rule__While__Group__3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13159:1: rule__While__Group__3 : rule__While__Group__3__Impl rule__While__Group__4 ;
    public final void rule__While__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13163:1: ( rule__While__Group__3__Impl rule__While__Group__4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13164:2: rule__While__Group__3__Impl rule__While__Group__4
            {
            pushFollow(FOLLOW_rule__While__Group__3__Impl_in_rule__While__Group__326569);
            rule__While__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__While__Group__4_in_rule__While__Group__326572);
            rule__While__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__3"


    // $ANTLR start "rule__While__Group__3__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13171:1: rule__While__Group__3__Impl : ( ')' ) ;
    public final void rule__While__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13175:1: ( ( ')' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13176:1: ( ')' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13176:1: ( ')' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13177:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,43,FOLLOW_43_in_rule__While__Group__3__Impl26600); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__3__Impl"


    // $ANTLR start "rule__While__Group__4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13190:1: rule__While__Group__4 : rule__While__Group__4__Impl ;
    public final void rule__While__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13194:1: ( rule__While__Group__4__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13195:2: rule__While__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__While__Group__4__Impl_in_rule__While__Group__426631);
            rule__While__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__4"


    // $ANTLR start "rule__While__Group__4__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13201:1: rule__While__Group__4__Impl : ( ( rule__While__BodyAssignment_4 ) ) ;
    public final void rule__While__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13205:1: ( ( ( rule__While__BodyAssignment_4 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13206:1: ( ( rule__While__BodyAssignment_4 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13206:1: ( ( rule__While__BodyAssignment_4 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13207:1: ( rule__While__BodyAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getBodyAssignment_4()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13208:1: ( rule__While__BodyAssignment_4 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13208:2: rule__While__BodyAssignment_4
            {
            pushFollow(FOLLOW_rule__While__BodyAssignment_4_in_rule__While__Group__4__Impl26658);
            rule__While__BodyAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getBodyAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__Group__4__Impl"


    // $ANTLR start "rule__TeleoReactiveRule__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13228:1: rule__TeleoReactiveRule__Group__0 : rule__TeleoReactiveRule__Group__0__Impl rule__TeleoReactiveRule__Group__1 ;
    public final void rule__TeleoReactiveRule__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13232:1: ( rule__TeleoReactiveRule__Group__0__Impl rule__TeleoReactiveRule__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13233:2: rule__TeleoReactiveRule__Group__0__Impl rule__TeleoReactiveRule__Group__1
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__Group__0__Impl_in_rule__TeleoReactiveRule__Group__026698);
            rule__TeleoReactiveRule__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveRule__Group__1_in_rule__TeleoReactiveRule__Group__026701);
            rule__TeleoReactiveRule__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__Group__0"


    // $ANTLR start "rule__TeleoReactiveRule__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13240:1: rule__TeleoReactiveRule__Group__0__Impl : ( ( rule__TeleoReactiveRule__ContextAssignment_0 ) ) ;
    public final void rule__TeleoReactiveRule__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13244:1: ( ( ( rule__TeleoReactiveRule__ContextAssignment_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13245:1: ( ( rule__TeleoReactiveRule__ContextAssignment_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13245:1: ( ( rule__TeleoReactiveRule__ContextAssignment_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13246:1: ( rule__TeleoReactiveRule__ContextAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleAccess().getContextAssignment_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13247:1: ( rule__TeleoReactiveRule__ContextAssignment_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13247:2: rule__TeleoReactiveRule__ContextAssignment_0
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__ContextAssignment_0_in_rule__TeleoReactiveRule__Group__0__Impl26728);
            rule__TeleoReactiveRule__ContextAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleAccess().getContextAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__Group__0__Impl"


    // $ANTLR start "rule__TeleoReactiveRule__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13257:1: rule__TeleoReactiveRule__Group__1 : rule__TeleoReactiveRule__Group__1__Impl rule__TeleoReactiveRule__Group__2 ;
    public final void rule__TeleoReactiveRule__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13261:1: ( rule__TeleoReactiveRule__Group__1__Impl rule__TeleoReactiveRule__Group__2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13262:2: rule__TeleoReactiveRule__Group__1__Impl rule__TeleoReactiveRule__Group__2
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__Group__1__Impl_in_rule__TeleoReactiveRule__Group__126758);
            rule__TeleoReactiveRule__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__TeleoReactiveRule__Group__2_in_rule__TeleoReactiveRule__Group__126761);
            rule__TeleoReactiveRule__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__Group__1"


    // $ANTLR start "rule__TeleoReactiveRule__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13269:1: rule__TeleoReactiveRule__Group__1__Impl : ( '->' ) ;
    public final void rule__TeleoReactiveRule__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13273:1: ( ( '->' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13274:1: ( '->' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13274:1: ( '->' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13275:1: '->'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleAccess().getHyphenMinusGreaterThanSignKeyword_1()); 
            }
            match(input,83,FOLLOW_83_in_rule__TeleoReactiveRule__Group__1__Impl26789); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleAccess().getHyphenMinusGreaterThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__Group__1__Impl"


    // $ANTLR start "rule__TeleoReactiveRule__Group__2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13288:1: rule__TeleoReactiveRule__Group__2 : rule__TeleoReactiveRule__Group__2__Impl ;
    public final void rule__TeleoReactiveRule__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13292:1: ( rule__TeleoReactiveRule__Group__2__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13293:2: rule__TeleoReactiveRule__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__Group__2__Impl_in_rule__TeleoReactiveRule__Group__226820);
            rule__TeleoReactiveRule__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__Group__2"


    // $ANTLR start "rule__TeleoReactiveRule__Group__2__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13299:1: rule__TeleoReactiveRule__Group__2__Impl : ( ( rule__TeleoReactiveRule__OperationAssignment_2 ) ) ;
    public final void rule__TeleoReactiveRule__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13303:1: ( ( ( rule__TeleoReactiveRule__OperationAssignment_2 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13304:1: ( ( rule__TeleoReactiveRule__OperationAssignment_2 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13304:1: ( ( rule__TeleoReactiveRule__OperationAssignment_2 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13305:1: ( rule__TeleoReactiveRule__OperationAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleAccess().getOperationAssignment_2()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13306:1: ( rule__TeleoReactiveRule__OperationAssignment_2 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13306:2: rule__TeleoReactiveRule__OperationAssignment_2
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__OperationAssignment_2_in_rule__TeleoReactiveRule__Group__2__Impl26847);
            rule__TeleoReactiveRule__OperationAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleAccess().getOperationAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__Group__2__Impl"


    // $ANTLR start "rule__Number__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13322:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
    public final void rule__Number__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13326:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13327:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
            {
            pushFollow(FOLLOW_rule__Number__Group_1__0__Impl_in_rule__Number__Group_1__026883);
            rule__Number__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__Number__Group_1__1_in_rule__Number__Group_1__026886);
            rule__Number__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__0"


    // $ANTLR start "rule__Number__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13334:1: rule__Number__Group_1__0__Impl : ( ruleSign ) ;
    public final void rule__Number__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13338:1: ( ( ruleSign ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13339:1: ( ruleSign )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13339:1: ( ruleSign )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13340:1: ruleSign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getSignParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleSign_in_rule__Number__Group_1__0__Impl26913);
            ruleSign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getSignParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__0__Impl"


    // $ANTLR start "rule__Number__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13351:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
    public final void rule__Number__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13355:1: ( rule__Number__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13356:2: rule__Number__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Number__Group_1__1__Impl_in_rule__Number__Group_1__126942);
            rule__Number__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__1"


    // $ANTLR start "rule__Number__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13362:1: rule__Number__Group_1__1__Impl : ( ruleUnsignedNumber ) ;
    public final void rule__Number__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13366:1: ( ( ruleUnsignedNumber ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13367:1: ( ruleUnsignedNumber )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13367:1: ( ruleUnsignedNumber )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13368:1: ruleUnsignedNumber
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getUnsignedNumberParserRuleCall_1_1()); 
            }
            pushFollow(FOLLOW_ruleUnsignedNumber_in_rule__Number__Group_1__1__Impl26969);
            ruleUnsignedNumber();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getUnsignedNumberParserRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13383:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
    public final void rule__QualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13387:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13388:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__027002);
            rule__QualifiedName__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__027005);
            rule__QualifiedName__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0"


    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13395:1: rule__QualifiedName__Group__0__Impl : ( RULE_IDENTIFIER ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13399:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13400:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13400:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13401:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getIDENTIFIERTerminalRuleCall_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__QualifiedName__Group__0__Impl27032); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getIDENTIFIERTerminalRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13412:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
    public final void rule__QualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13416:1: ( rule__QualifiedName__Group__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13417:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__127061);
            rule__QualifiedName__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1"


    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13423:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13427:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13428:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13428:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13429:1: ( rule__QualifiedName__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13430:1: ( rule__QualifiedName__Group_1__0 )*
            loop69:
            do {
                int alt69=2;
                int LA69_0 = input.LA(1);

                if ( (LA69_0==40) ) {
                    alt69=1;
                }


                switch (alt69) {
            	case 1 :
            	    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13430:2: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl27088);
            	    rule__QualifiedName__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop69;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13444:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13448:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13449:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__027123);
            rule__QualifiedName__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__027126);
            rule__QualifiedName__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0"


    // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13456:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13460:1: ( ( '.' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13461:1: ( '.' )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13461:1: ( '.' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13462:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }
            match(input,40,FOLLOW_40_in_rule__QualifiedName__Group_1__0__Impl27154); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13475:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13479:1: ( rule__QualifiedName__Group_1__1__Impl )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13480:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__127185);
            rule__QualifiedName__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1"


    // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13486:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_IDENTIFIER ) ;
    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13490:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13491:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13491:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13492:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getIDENTIFIERTerminalRuleCall_1_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__QualifiedName__Group_1__1__Impl27212); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getIDENTIFIERTerminalRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"


    // $ANTLR start "rule__Astra__LibrarysAssignment_0_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13508:1: rule__Astra__LibrarysAssignment_0_0 : ( ruleLibrary ) ;
    public final void rule__Astra__LibrarysAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13512:1: ( ( ruleLibrary ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13513:1: ( ruleLibrary )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13513:1: ( ruleLibrary )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13514:1: ruleLibrary
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAstraAccess().getLibrarysLibraryParserRuleCall_0_0_0()); 
            }
            pushFollow(FOLLOW_ruleLibrary_in_rule__Astra__LibrarysAssignment_0_027250);
            ruleLibrary();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAstraAccess().getLibrarysLibraryParserRuleCall_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__LibrarysAssignment_0_0"


    // $ANTLR start "rule__Astra__AgentAssignment_0_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13523:1: rule__Astra__AgentAssignment_0_1 : ( ruleAgent ) ;
    public final void rule__Astra__AgentAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13527:1: ( ( ruleAgent ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13528:1: ( ruleAgent )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13528:1: ( ruleAgent )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13529:1: ruleAgent
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAstraAccess().getAgentAgentParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleAgent_in_rule__Astra__AgentAssignment_0_127281);
            ruleAgent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAstraAccess().getAgentAgentParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Astra__AgentAssignment_0_1"


    // $ANTLR start "rule__AgentUnitTest__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13538:1: rule__AgentUnitTest__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__AgentUnitTest__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13542:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13543:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13543:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13544:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__AgentUnitTest__NameAssignment_127312); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__NameAssignment_1"


    // $ANTLR start "rule__AgentUnitTest__TestAgentAssignment_3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13553:1: rule__AgentUnitTest__TestAgentAssignment_3 : ( ruleTestAgent ) ;
    public final void rule__AgentUnitTest__TestAgentAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13557:1: ( ( ruleTestAgent ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13558:1: ( ruleTestAgent )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13558:1: ( ruleTestAgent )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13559:1: ruleTestAgent
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getTestAgentTestAgentParserRuleCall_3_0()); 
            }
            pushFollow(FOLLOW_ruleTestAgent_in_rule__AgentUnitTest__TestAgentAssignment_327343);
            ruleTestAgent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getTestAgentTestAgentParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__TestAgentAssignment_3"


    // $ANTLR start "rule__AgentUnitTest__TestCasesAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13568:1: rule__AgentUnitTest__TestCasesAssignment_4 : ( ruleTestCase ) ;
    public final void rule__AgentUnitTest__TestCasesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13572:1: ( ( ruleTestCase ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13573:1: ( ruleTestCase )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13573:1: ( ruleTestCase )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13574:1: ruleTestCase
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentUnitTestAccess().getTestCasesTestCaseParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTestCase_in_rule__AgentUnitTest__TestCasesAssignment_427374);
            ruleTestCase();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentUnitTestAccess().getTestCasesTestCaseParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AgentUnitTest__TestCasesAssignment_4"


    // $ANTLR start "rule__TestAgent__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13583:1: rule__TestAgent__NameAssignment_1 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestAgent__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13587:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13588:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13588:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13589:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentAccess().getNameAgentCrossReference_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13590:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13591:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentAccess().getNameAgentIDENTIFIERTerminalRuleCall_1_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestAgent__NameAssignment_127409); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentAccess().getNameAgentIDENTIFIERTerminalRuleCall_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentAccess().getNameAgentCrossReference_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgent__NameAssignment_1"


    // $ANTLR start "rule__TestCase__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13602:1: rule__TestCase__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestCase__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13606:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13607:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13607:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13608:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestCase__NameAssignment_127444); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__NameAssignment_1"


    // $ANTLR start "rule__TestCase__TestStatementsAssignment_3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13617:1: rule__TestCase__TestStatementsAssignment_3 : ( ruleTestStatement ) ;
    public final void rule__TestCase__TestStatementsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13621:1: ( ( ruleTestStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13622:1: ( ruleTestStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13622:1: ( ruleTestStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13623:1: ruleTestStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestCaseAccess().getTestStatementsTestStatementParserRuleCall_3_0()); 
            }
            pushFollow(FOLLOW_ruleTestStatement_in_rule__TestCase__TestStatementsAssignment_327475);
            ruleTestStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestCaseAccess().getTestStatementsTestStatementParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestCase__TestStatementsAssignment_3"


    // $ANTLR start "rule__TestAgentRun__AgentAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13632:1: rule__TestAgentRun__AgentAssignment_0 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestAgentRun__AgentAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13636:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13637:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13637:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13638:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getAgentAgentCrossReference_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13639:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13640:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getAgentAgentIDENTIFIERTerminalRuleCall_0_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestAgentRun__AgentAssignment_027510); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getAgentAgentIDENTIFIERTerminalRuleCall_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getAgentAgentCrossReference_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__AgentAssignment_0"


    // $ANTLR start "rule__TestAgentRun__ItemAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13651:1: rule__TestAgentRun__ItemAssignment_3_1 : ( ruleTestAgentRunItem ) ;
    public final void rule__TestAgentRun__ItemAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13655:1: ( ( ruleTestAgentRunItem ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13656:1: ( ruleTestAgentRunItem )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13656:1: ( ruleTestAgentRunItem )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13657:1: ruleTestAgentRunItem
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunAccess().getItemTestAgentRunItemParserRuleCall_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleTestAgentRunItem_in_rule__TestAgentRun__ItemAssignment_3_127545);
            ruleTestAgentRunItem();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunAccess().getItemTestAgentRunItemParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRun__ItemAssignment_3_1"


    // $ANTLR start "rule__TestAgentRunItem__ValueAssignment_0_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13666:1: rule__TestAgentRunItem__ValueAssignment_0_1 : ( RULE_INTEGER ) ;
    public final void rule__TestAgentRunItem__ValueAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13670:1: ( ( RULE_INTEGER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13671:1: ( RULE_INTEGER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13671:1: ( RULE_INTEGER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13672:1: RULE_INTEGER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getValueINTEGERTerminalRuleCall_0_1_0()); 
            }
            match(input,RULE_INTEGER,FOLLOW_RULE_INTEGER_in_rule__TestAgentRunItem__ValueAssignment_0_127576); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getValueINTEGERTerminalRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__ValueAssignment_0_1"


    // $ANTLR start "rule__TestAgentRunItem__ValueAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13681:1: rule__TestAgentRunItem__ValueAssignment_1_1 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestAgentRunItem__ValueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13685:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13686:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13686:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13687:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getValueTestDefinitionCrossReference_1_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13688:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13689:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentRunItemAccess().getValueTestDefinitionIDENTIFIERTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestAgentRunItem__ValueAssignment_1_127611); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getValueTestDefinitionIDENTIFIERTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentRunItemAccess().getValueTestDefinitionCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentRunItem__ValueAssignment_1_1"


    // $ANTLR start "rule__TestEquals__ErrorAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13700:1: rule__TestEquals__ErrorAssignment_2 : ( RULE_STRING ) ;
    public final void rule__TestEquals__ErrorAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13704:1: ( ( RULE_STRING ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13705:1: ( RULE_STRING )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13705:1: ( RULE_STRING )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13706:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getErrorSTRINGTerminalRuleCall_2_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__TestEquals__ErrorAssignment_227646); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getErrorSTRINGTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__ErrorAssignment_2"


    // $ANTLR start "rule__TestEquals__ExpectedsAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13715:1: rule__TestEquals__ExpectedsAssignment_4 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestEquals__ExpectedsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13719:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13720:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13720:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13721:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getExpectedsTestBeliefsCrossReference_4_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13722:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13723:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getExpectedsTestBeliefsIDENTIFIERTerminalRuleCall_4_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestEquals__ExpectedsAssignment_427681); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getExpectedsTestBeliefsIDENTIFIERTerminalRuleCall_4_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getExpectedsTestBeliefsCrossReference_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__ExpectedsAssignment_4"


    // $ANTLR start "rule__TestEquals__ActualsAssignment_6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13734:1: rule__TestEquals__ActualsAssignment_6 : ( ruleTestAgentProperity ) ;
    public final void rule__TestEquals__ActualsAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13738:1: ( ( ruleTestAgentProperity ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13739:1: ( ruleTestAgentProperity )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13739:1: ( ruleTestAgentProperity )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13740:1: ruleTestAgentProperity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEqualsAccess().getActualsTestAgentProperityParserRuleCall_6_0()); 
            }
            pushFollow(FOLLOW_ruleTestAgentProperity_in_rule__TestEquals__ActualsAssignment_627716);
            ruleTestAgentProperity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEqualsAccess().getActualsTestAgentProperityParserRuleCall_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEquals__ActualsAssignment_6"


    // $ANTLR start "rule__TestAgentProperity__AgentAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13749:1: rule__TestAgentProperity__AgentAssignment_0 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestAgentProperity__AgentAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13753:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13754:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13754:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13755:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getAgentAgentCrossReference_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13756:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13757:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getAgentAgentIDENTIFIERTerminalRuleCall_0_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestAgentProperity__AgentAssignment_027751); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getAgentAgentIDENTIFIERTerminalRuleCall_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getAgentAgentCrossReference_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__AgentAssignment_0"


    // $ANTLR start "rule__TestAgentProperity__ProperityAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13768:1: rule__TestAgentProperity__ProperityAssignment_2 : ( ( rule__TestAgentProperity__ProperityAlternatives_2_0 ) ) ;
    public final void rule__TestAgentProperity__ProperityAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13772:1: ( ( ( rule__TestAgentProperity__ProperityAlternatives_2_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13773:1: ( ( rule__TestAgentProperity__ProperityAlternatives_2_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13773:1: ( ( rule__TestAgentProperity__ProperityAlternatives_2_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13774:1: ( rule__TestAgentProperity__ProperityAlternatives_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestAgentProperityAccess().getProperityAlternatives_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13775:1: ( rule__TestAgentProperity__ProperityAlternatives_2_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13775:2: rule__TestAgentProperity__ProperityAlternatives_2_0
            {
            pushFollow(FOLLOW_rule__TestAgentProperity__ProperityAlternatives_2_0_in_rule__TestAgentProperity__ProperityAssignment_227786);
            rule__TestAgentProperity__ProperityAlternatives_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestAgentProperityAccess().getProperityAlternatives_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestAgentProperity__ProperityAssignment_2"


    // $ANTLR start "rule__TestTrue__ErrorAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13784:1: rule__TestTrue__ErrorAssignment_2 : ( RULE_STRING ) ;
    public final void rule__TestTrue__ErrorAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13788:1: ( ( RULE_STRING ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13789:1: ( RULE_STRING )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13789:1: ( RULE_STRING )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13790:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getErrorSTRINGTerminalRuleCall_2_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__TestTrue__ErrorAssignment_227819); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getErrorSTRINGTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__ErrorAssignment_2"


    // $ANTLR start "rule__TestTrue__ConditionAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13799:1: rule__TestTrue__ConditionAssignment_4 : ( ruleTestCondition ) ;
    public final void rule__TestTrue__ConditionAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13803:1: ( ( ruleTestCondition ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13804:1: ( ruleTestCondition )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13804:1: ( ruleTestCondition )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13805:1: ruleTestCondition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestTrueAccess().getConditionTestConditionParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTestCondition_in_rule__TestTrue__ConditionAssignment_427850);
            ruleTestCondition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestTrueAccess().getConditionTestConditionParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestTrue__ConditionAssignment_4"


    // $ANTLR start "rule__TestFalse__ErrorAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13814:1: rule__TestFalse__ErrorAssignment_2 : ( RULE_STRING ) ;
    public final void rule__TestFalse__ErrorAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13818:1: ( ( RULE_STRING ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13819:1: ( RULE_STRING )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13819:1: ( RULE_STRING )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13820:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getErrorSTRINGTerminalRuleCall_2_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__TestFalse__ErrorAssignment_227881); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getErrorSTRINGTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__ErrorAssignment_2"


    // $ANTLR start "rule__TestFalse__ConditionAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13829:1: rule__TestFalse__ConditionAssignment_4 : ( ruleTestCondition ) ;
    public final void rule__TestFalse__ConditionAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13833:1: ( ( ruleTestCondition ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13834:1: ( ruleTestCondition )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13834:1: ( ruleTestCondition )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13835:1: ruleTestCondition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestFalseAccess().getConditionTestConditionParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTestCondition_in_rule__TestFalse__ConditionAssignment_427912);
            ruleTestCondition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestFalseAccess().getConditionTestConditionParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestFalse__ConditionAssignment_4"


    // $ANTLR start "rule__TestVerify__AgentAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13844:1: rule__TestVerify__AgentAssignment_0 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestVerify__AgentAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13848:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13849:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13849:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13850:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getAgentAgentCrossReference_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13851:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13852:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getAgentAgentIDENTIFIERTerminalRuleCall_0_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestVerify__AgentAssignment_027947); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getAgentAgentIDENTIFIERTerminalRuleCall_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getAgentAgentCrossReference_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__AgentAssignment_0"


    // $ANTLR start "rule__TestVerify__ItemAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13863:1: rule__TestVerify__ItemAssignment_4 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__TestVerify__ItemAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13867:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13868:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13868:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13869:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getItemTestDefinitionCrossReference_4_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13870:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13871:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestVerifyAccess().getItemTestDefinitionIDENTIFIERTerminalRuleCall_4_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestVerify__ItemAssignment_427986); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getItemTestDefinitionIDENTIFIERTerminalRuleCall_4_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestVerifyAccess().getItemTestDefinitionCrossReference_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestVerify__ItemAssignment_4"


    // $ANTLR start "rule__TestBeliefs__NameAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13882:1: rule__TestBeliefs__NameAssignment_2 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestBeliefs__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13886:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13887:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13887:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13888:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getNameIDENTIFIERTerminalRuleCall_2_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestBeliefs__NameAssignment_228021); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getNameIDENTIFIERTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__NameAssignment_2"


    // $ANTLR start "rule__TestBeliefs__BeliefsAssignment_3_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13897:1: rule__TestBeliefs__BeliefsAssignment_3_1_0 : ( rulePredicate ) ;
    public final void rule__TestBeliefs__BeliefsAssignment_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13901:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13902:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13902:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13903:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getBeliefsPredicateParserRuleCall_3_1_0_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TestBeliefs__BeliefsAssignment_3_1_028052);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getBeliefsPredicateParserRuleCall_3_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__BeliefsAssignment_3_1_0"


    // $ANTLR start "rule__TestBeliefs__BeliefsAssignment_3_1_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13912:1: rule__TestBeliefs__BeliefsAssignment_3_1_1_1 : ( rulePredicate ) ;
    public final void rule__TestBeliefs__BeliefsAssignment_3_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13916:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13917:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13917:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13918:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefsAccess().getBeliefsPredicateParserRuleCall_3_1_1_1_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TestBeliefs__BeliefsAssignment_3_1_1_128083);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefsAccess().getBeliefsPredicateParserRuleCall_3_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBeliefs__BeliefsAssignment_3_1_1_1"


    // $ANTLR start "rule__TestBelief__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13927:1: rule__TestBelief__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestBelief__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13931:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13932:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13932:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13933:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestBelief__NameAssignment_128114); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__NameAssignment_1"


    // $ANTLR start "rule__TestBelief__BeliefAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13942:1: rule__TestBelief__BeliefAssignment_2 : ( rulePredicate ) ;
    public final void rule__TestBelief__BeliefAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13946:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13947:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13947:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13948:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestBeliefAccess().getBeliefPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TestBelief__BeliefAssignment_228145);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestBeliefAccess().getBeliefPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestBelief__BeliefAssignment_2"


    // $ANTLR start "rule__TestPlan__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13957:1: rule__TestPlan__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestPlan__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13961:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13962:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13962:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13963:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestPlan__NameAssignment_128176); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__NameAssignment_1"


    // $ANTLR start "rule__TestPlan__PlanAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13972:1: rule__TestPlan__PlanAssignment_2 : ( rulePredicate ) ;
    public final void rule__TestPlan__PlanAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13976:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13977:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13977:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13978:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestPlanAccess().getPlanPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TestPlan__PlanAssignment_228207);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestPlanAccess().getPlanPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestPlan__PlanAssignment_2"


    // $ANTLR start "rule__TestEvent__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13987:1: rule__TestEvent__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestEvent__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13991:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13992:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13992:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:13993:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestEvent__NameAssignment_128238); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__NameAssignment_1"


    // $ANTLR start "rule__TestEvent__EventAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14002:1: rule__TestEvent__EventAssignment_2 : ( ruleMentalEvent ) ;
    public final void rule__TestEvent__EventAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14006:1: ( ( ruleMentalEvent ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14007:1: ( ruleMentalEvent )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14007:1: ( ruleMentalEvent )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14008:1: ruleMentalEvent
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestEventAccess().getEventMentalEventParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleMentalEvent_in_rule__TestEvent__EventAssignment_228269);
            ruleMentalEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestEventAccess().getEventMentalEventParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestEvent__EventAssignment_2"


    // $ANTLR start "rule__TestGoal__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14017:1: rule__TestGoal__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestGoal__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14021:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14022:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14022:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14023:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestGoal__NameAssignment_128300); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__NameAssignment_1"


    // $ANTLR start "rule__TestGoal__GoalAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14032:1: rule__TestGoal__GoalAssignment_2 : ( ruleGoal ) ;
    public final void rule__TestGoal__GoalAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14036:1: ( ( ruleGoal ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14037:1: ( ruleGoal )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14037:1: ( ruleGoal )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14038:1: ruleGoal
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestGoalAccess().getGoalGoalParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleGoal_in_rule__TestGoal__GoalAssignment_228331);
            ruleGoal();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestGoalAccess().getGoalGoalParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestGoal__GoalAssignment_2"


    // $ANTLR start "rule__TestRule__NameAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14047:1: rule__TestRule__NameAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__TestRule__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14051:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14052:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14052:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14053:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__TestRule__NameAssignment_128362); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getNameIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__NameAssignment_1"


    // $ANTLR start "rule__TestRule__EventAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14062:1: rule__TestRule__EventAssignment_2 : ( ruleEvent ) ;
    public final void rule__TestRule__EventAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14066:1: ( ( ruleEvent ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14067:1: ( ruleEvent )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14067:1: ( ruleEvent )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14068:1: ruleEvent
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getEventEventParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleEvent_in_rule__TestRule__EventAssignment_228393);
            ruleEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getEventEventParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__EventAssignment_2"


    // $ANTLR start "rule__TestRule__ContextAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14077:1: rule__TestRule__ContextAssignment_3_1 : ( ruleAND ) ;
    public final void rule__TestRule__ContextAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14081:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14082:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14082:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14083:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTestRuleAccess().getContextANDParserRuleCall_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__TestRule__ContextAssignment_3_128424);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTestRuleAccess().getContextANDParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TestRule__ContextAssignment_3_1"


    // $ANTLR start "rule__Agent__NameAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14092:1: rule__Agent__NameAssignment_2 : ( RULE_IDENTIFIER ) ;
    public final void rule__Agent__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14096:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14097:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14097:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14098:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getNameIDENTIFIERTerminalRuleCall_2_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Agent__NameAssignment_228455); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getNameIDENTIFIERTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__NameAssignment_2"


    // $ANTLR start "rule__Agent__SuperTypesAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14107:1: rule__Agent__SuperTypesAssignment_3_1 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__Agent__SuperTypesAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14111:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14112:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14112:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14113:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getSuperTypesAgentCrossReference_3_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14114:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14115:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getSuperTypesAgentIDENTIFIERTerminalRuleCall_3_1_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Agent__SuperTypesAssignment_3_128490); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getSuperTypesAgentIDENTIFIERTerminalRuleCall_3_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getSuperTypesAgentCrossReference_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__SuperTypesAssignment_3_1"


    // $ANTLR start "rule__Agent__SuperTypesAssignment_3_2_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14126:1: rule__Agent__SuperTypesAssignment_3_2_1 : ( ( RULE_IDENTIFIER ) ) ;
    public final void rule__Agent__SuperTypesAssignment_3_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14130:1: ( ( ( RULE_IDENTIFIER ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14131:1: ( ( RULE_IDENTIFIER ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14131:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14132:1: ( RULE_IDENTIFIER )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getSuperTypesAgentCrossReference_3_2_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14133:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14134:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getSuperTypesAgentIDENTIFIERTerminalRuleCall_3_2_1_0_1()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Agent__SuperTypesAssignment_3_2_128529); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getSuperTypesAgentIDENTIFIERTerminalRuleCall_3_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getSuperTypesAgentCrossReference_3_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__SuperTypesAssignment_3_2_1"


    // $ANTLR start "rule__Agent__ElementsAssignment_5"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14145:1: rule__Agent__ElementsAssignment_5 : ( ruleAbstractElement ) ;
    public final void rule__Agent__ElementsAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14149:1: ( ( ruleAbstractElement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14150:1: ( ruleAbstractElement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14150:1: ( ruleAbstractElement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14151:1: ruleAbstractElement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAgentAccess().getElementsAbstractElementParserRuleCall_5_0()); 
            }
            pushFollow(FOLLOW_ruleAbstractElement_in_rule__Agent__ElementsAssignment_528564);
            ruleAbstractElement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAgentAccess().getElementsAbstractElementParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Agent__ElementsAssignment_5"


    // $ANTLR start "rule__InitialStatement__FormulaAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14160:1: rule__InitialStatement__FormulaAssignment_1 : ( ( rule__InitialStatement__FormulaAlternatives_1_0 ) ) ;
    public final void rule__InitialStatement__FormulaAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14164:1: ( ( ( rule__InitialStatement__FormulaAlternatives_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14165:1: ( ( rule__InitialStatement__FormulaAlternatives_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14165:1: ( ( rule__InitialStatement__FormulaAlternatives_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14166:1: ( rule__InitialStatement__FormulaAlternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getInitialStatementAccess().getFormulaAlternatives_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14167:1: ( rule__InitialStatement__FormulaAlternatives_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14167:2: rule__InitialStatement__FormulaAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__InitialStatement__FormulaAlternatives_1_0_in_rule__InitialStatement__FormulaAssignment_128595);
            rule__InitialStatement__FormulaAlternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getInitialStatementAccess().getFormulaAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__InitialStatement__FormulaAssignment_1"


    // $ANTLR start "rule__Goal__PredicateAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14176:1: rule__Goal__PredicateAssignment_1 : ( rulePredicate ) ;
    public final void rule__Goal__PredicateAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14180:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14181:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14181:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14182:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalAccess().getPredicatePredicateParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__Goal__PredicateAssignment_128628);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalAccess().getPredicatePredicateParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Goal__PredicateAssignment_1"


    // $ANTLR start "rule__PlanStatement__IdentfierAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14191:1: rule__PlanStatement__IdentfierAssignment_2 : ( rulePredicate ) ;
    public final void rule__PlanStatement__IdentfierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14195:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14196:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14196:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14197:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getIdentfierPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__PlanStatement__IdentfierAssignment_228659);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getIdentfierPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__IdentfierAssignment_2"


    // $ANTLR start "rule__PlanStatement__PlanAssignment_3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14206:1: rule__PlanStatement__PlanAssignment_3 : ( ruleStatement ) ;
    public final void rule__PlanStatement__PlanAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14210:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14211:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14211:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14212:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPlanStatementAccess().getPlanStatementParserRuleCall_3_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__PlanStatement__PlanAssignment_328690);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPlanStatementAccess().getPlanStatementParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PlanStatement__PlanAssignment_3"


    // $ANTLR start "rule__RuleStatement__EventAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14221:1: rule__RuleStatement__EventAssignment_2 : ( ruleEvent ) ;
    public final void rule__RuleStatement__EventAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14225:1: ( ( ruleEvent ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14226:1: ( ruleEvent )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14226:1: ( ruleEvent )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14227:1: ruleEvent
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getEventEventParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleEvent_in_rule__RuleStatement__EventAssignment_228721);
            ruleEvent();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getEventEventParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__EventAssignment_2"


    // $ANTLR start "rule__RuleStatement__ContextAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14236:1: rule__RuleStatement__ContextAssignment_3_1 : ( ruleAND ) ;
    public final void rule__RuleStatement__ContextAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14240:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14241:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14241:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14242:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getContextANDParserRuleCall_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__RuleStatement__ContextAssignment_3_128752);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getContextANDParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__ContextAssignment_3_1"


    // $ANTLR start "rule__RuleStatement__PlanAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14251:1: rule__RuleStatement__PlanAssignment_4 : ( ruleStatement ) ;
    public final void rule__RuleStatement__PlanAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14255:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14256:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14256:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14257:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getRuleStatementAccess().getPlanStatementParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__RuleStatement__PlanAssignment_428783);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getRuleStatementAccess().getPlanStatementParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__RuleStatement__PlanAssignment_4"


    // $ANTLR start "rule__TeleoReactiveFunction__IdentifierAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14266:1: rule__TeleoReactiveFunction__IdentifierAssignment_2 : ( rulePredicate ) ;
    public final void rule__TeleoReactiveFunction__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14270:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14271:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14271:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14272:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getIdentifierPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TeleoReactiveFunction__IdentifierAssignment_228814);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getIdentifierPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__IdentifierAssignment_2"


    // $ANTLR start "rule__TeleoReactiveFunction__RulesAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14281:1: rule__TeleoReactiveFunction__RulesAssignment_3_1 : ( ruleTeleoReactiveRule ) ;
    public final void rule__TeleoReactiveFunction__RulesAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14285:1: ( ( ruleTeleoReactiveRule ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14286:1: ( ruleTeleoReactiveRule )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14286:1: ( ruleTeleoReactiveRule )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14287:1: ruleTeleoReactiveRule
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveFunctionAccess().getRulesTeleoReactiveRuleParserRuleCall_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleTeleoReactiveRule_in_rule__TeleoReactiveFunction__RulesAssignment_3_128845);
            ruleTeleoReactiveRule();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveFunctionAccess().getRulesTeleoReactiveRuleParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveFunction__RulesAssignment_3_1"


    // $ANTLR start "rule__AND__FormulasAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14296:1: rule__AND__FormulasAssignment_0 : ( ruleFormula ) ;
    public final void rule__AND__FormulasAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14300:1: ( ( ruleFormula ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14301:1: ( ruleFormula )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14301:1: ( ruleFormula )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14302:1: ruleFormula
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getFormulasFormulaParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleFormula_in_rule__AND__FormulasAssignment_028876);
            ruleFormula();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getFormulasFormulaParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__FormulasAssignment_0"


    // $ANTLR start "rule__AND__FormulasAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14311:1: rule__AND__FormulasAssignment_1_1 : ( ruleFormula ) ;
    public final void rule__AND__FormulasAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14315:1: ( ( ruleFormula ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14316:1: ( ruleFormula )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14316:1: ( ruleFormula )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14317:1: ruleFormula
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getANDAccess().getFormulasFormulaParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleFormula_in_rule__AND__FormulasAssignment_1_128907);
            ruleFormula();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getANDAccess().getFormulasFormulaParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AND__FormulasAssignment_1_1"


    // $ANTLR start "rule__Comparison__LeftAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14326:1: rule__Comparison__LeftAssignment_0 : ( ruleTerm ) ;
    public final void rule__Comparison__LeftAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14330:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14331:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14331:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14332:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getLeftTermParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__Comparison__LeftAssignment_028938);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getLeftTermParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__LeftAssignment_0"


    // $ANTLR start "rule__Comparison__OperationAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14341:1: rule__Comparison__OperationAssignment_1 : ( ( rule__Comparison__OperationAlternatives_1_0 ) ) ;
    public final void rule__Comparison__OperationAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14345:1: ( ( ( rule__Comparison__OperationAlternatives_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14346:1: ( ( rule__Comparison__OperationAlternatives_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14346:1: ( ( rule__Comparison__OperationAlternatives_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14347:1: ( rule__Comparison__OperationAlternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getOperationAlternatives_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14348:1: ( rule__Comparison__OperationAlternatives_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14348:2: rule__Comparison__OperationAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__Comparison__OperationAlternatives_1_0_in_rule__Comparison__OperationAssignment_128969);
            rule__Comparison__OperationAlternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getOperationAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__OperationAssignment_1"


    // $ANTLR start "rule__Comparison__RightAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14357:1: rule__Comparison__RightAssignment_2 : ( ruleTerm ) ;
    public final void rule__Comparison__RightAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14361:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14362:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14362:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14363:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getComparisonAccess().getRightTermParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__Comparison__RightAssignment_229002);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getComparisonAccess().getRightTermParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Comparison__RightAssignment_2"


    // $ANTLR start "rule__MentalEvent__TypeAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14372:1: rule__MentalEvent__TypeAssignment_0 : ( ( rule__MentalEvent__TypeAlternatives_0_0 ) ) ;
    public final void rule__MentalEvent__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14376:1: ( ( ( rule__MentalEvent__TypeAlternatives_0_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14377:1: ( ( rule__MentalEvent__TypeAlternatives_0_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14377:1: ( ( rule__MentalEvent__TypeAlternatives_0_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14378:1: ( rule__MentalEvent__TypeAlternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMentalEventAccess().getTypeAlternatives_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14379:1: ( rule__MentalEvent__TypeAlternatives_0_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14379:2: rule__MentalEvent__TypeAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__MentalEvent__TypeAlternatives_0_0_in_rule__MentalEvent__TypeAssignment_029033);
            rule__MentalEvent__TypeAlternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMentalEventAccess().getTypeAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__TypeAssignment_0"


    // $ANTLR start "rule__MentalEvent__FormulaAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14388:1: rule__MentalEvent__FormulaAssignment_1 : ( ( rule__MentalEvent__FormulaAlternatives_1_0 ) ) ;
    public final void rule__MentalEvent__FormulaAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14392:1: ( ( ( rule__MentalEvent__FormulaAlternatives_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14393:1: ( ( rule__MentalEvent__FormulaAlternatives_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14393:1: ( ( rule__MentalEvent__FormulaAlternatives_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14394:1: ( rule__MentalEvent__FormulaAlternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMentalEventAccess().getFormulaAlternatives_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14395:1: ( rule__MentalEvent__FormulaAlternatives_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14395:2: rule__MentalEvent__FormulaAlternatives_1_0
            {
            pushFollow(FOLLOW_rule__MentalEvent__FormulaAlternatives_1_0_in_rule__MentalEvent__FormulaAssignment_129066);
            rule__MentalEvent__FormulaAlternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMentalEventAccess().getFormulaAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MentalEvent__FormulaAssignment_1"


    // $ANTLR start "rule__MessageEvent__PerformativeAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14404:1: rule__MessageEvent__PerformativeAssignment_2 : ( ruleTerm ) ;
    public final void rule__MessageEvent__PerformativeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14408:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14409:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14409:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14410:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getPerformativeTermParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__MessageEvent__PerformativeAssignment_229099);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getPerformativeTermParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__PerformativeAssignment_2"


    // $ANTLR start "rule__MessageEvent__SenderAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14419:1: rule__MessageEvent__SenderAssignment_4 : ( ruleTerm ) ;
    public final void rule__MessageEvent__SenderAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14423:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14424:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14424:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14425:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getSenderTermParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__MessageEvent__SenderAssignment_429130);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getSenderTermParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__SenderAssignment_4"


    // $ANTLR start "rule__MessageEvent__ContentAssignment_6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14434:1: rule__MessageEvent__ContentAssignment_6 : ( rulePredicate ) ;
    public final void rule__MessageEvent__ContentAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14438:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14439:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14439:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14440:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMessageEventAccess().getContentPredicateParserRuleCall_6_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__MessageEvent__ContentAssignment_629161);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMessageEventAccess().getContentPredicateParserRuleCall_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__MessageEvent__ContentAssignment_6"


    // $ANTLR start "rule__Library__ClazzAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14449:1: rule__Library__ClazzAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__Library__ClazzAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14453:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14454:1: ( ruleQualifiedName )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14454:1: ( ruleQualifiedName )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14455:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryAccess().getClazzQualifiedNameParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Library__ClazzAssignment_129192);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryAccess().getClazzQualifiedNameParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Library__ClazzAssignment_1"


    // $ANTLR start "rule__LibraryTerm__ModuleAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14464:1: rule__LibraryTerm__ModuleAssignment_0 : ( RULE_IDENTIFIER ) ;
    public final void rule__LibraryTerm__ModuleAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14468:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14469:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14469:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14470:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermAccess().getModuleIDENTIFIERTerminalRuleCall_0_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__LibraryTerm__ModuleAssignment_029223); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermAccess().getModuleIDENTIFIERTerminalRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__ModuleAssignment_0"


    // $ANTLR start "rule__LibraryTerm__ActionAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14479:1: rule__LibraryTerm__ActionAssignment_2 : ( rulePredicate ) ;
    public final void rule__LibraryTerm__ActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14483:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14484:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14484:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14485:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryTermAccess().getActionPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__LibraryTerm__ActionAssignment_229254);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryTermAccess().getActionPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryTerm__ActionAssignment_2"


    // $ANTLR start "rule__Count__PredicateAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14494:1: rule__Count__PredicateAssignment_2 : ( ruleAND ) ;
    public final void rule__Count__PredicateAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14498:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14499:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14499:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14500:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getCountAccess().getPredicateANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__Count__PredicateAssignment_229285);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getCountAccess().getPredicateANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Count__PredicateAssignment_2"


    // $ANTLR start "rule__List__TermsAssignment_1_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14509:1: rule__List__TermsAssignment_1_1_0 : ( ruleTerm ) ;
    public final void rule__List__TermsAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14513:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14514:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14514:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14515:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getTermsTermParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__List__TermsAssignment_1_1_029316);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getTermsTermParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__TermsAssignment_1_1_0"


    // $ANTLR start "rule__List__TermsAssignment_1_1_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14524:1: rule__List__TermsAssignment_1_1_1_1 : ( ruleTerm ) ;
    public final void rule__List__TermsAssignment_1_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14528:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14529:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14529:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14530:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListAccess().getTermsTermParserRuleCall_1_1_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__List__TermsAssignment_1_1_1_129347);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListAccess().getTermsTermParserRuleCall_1_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__List__TermsAssignment_1_1_1_1"


    // $ANTLR start "rule__ListConstructor__ContextAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14539:1: rule__ListConstructor__ContextAssignment_2 : ( ruleAND ) ;
    public final void rule__ListConstructor__ContextAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14543:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14544:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14544:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14545:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getContextANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__ListConstructor__ContextAssignment_229378);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getContextANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__ContextAssignment_2"


    // $ANTLR start "rule__ListConstructor__GuardAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14554:1: rule__ListConstructor__GuardAssignment_4 : ( ruleTerm ) ;
    public final void rule__ListConstructor__GuardAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14558:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14559:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14559:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14560:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getListConstructorAccess().getGuardTermParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__ListConstructor__GuardAssignment_429409);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getListConstructorAccess().getGuardTermParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ListConstructor__GuardAssignment_4"


    // $ANTLR start "rule__NOT__OpAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14569:1: rule__NOT__OpAssignment_0 : ( ( '~' ) ) ;
    public final void rule__NOT__OpAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14573:1: ( ( ( '~' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14574:1: ( ( '~' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14574:1: ( ( '~' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14575:1: ( '~' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTAccess().getOpTildeKeyword_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14576:1: ( '~' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14577:1: '~'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTAccess().getOpTildeKeyword_0_0()); 
            }
            match(input,84,FOLLOW_84_in_rule__NOT__OpAssignment_029445); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTAccess().getOpTildeKeyword_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTAccess().getOpTildeKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NOT__OpAssignment_0"


    // $ANTLR start "rule__NOT__FormulaAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14592:1: rule__NOT__FormulaAssignment_1 : ( rulePredicate ) ;
    public final void rule__NOT__FormulaAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14596:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14597:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14597:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14598:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNOTAccess().getFormulaPredicateParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__NOT__FormulaAssignment_129484);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNOTAccess().getFormulaPredicateParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__NOT__FormulaAssignment_1"


    // $ANTLR start "rule__Addition__OperationAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14607:1: rule__Addition__OperationAssignment_1_1 : ( ( rule__Addition__OperationAlternatives_1_1_0 ) ) ;
    public final void rule__Addition__OperationAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14611:1: ( ( ( rule__Addition__OperationAlternatives_1_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14612:1: ( ( rule__Addition__OperationAlternatives_1_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14612:1: ( ( rule__Addition__OperationAlternatives_1_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14613:1: ( rule__Addition__OperationAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getOperationAlternatives_1_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14614:1: ( rule__Addition__OperationAlternatives_1_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14614:2: rule__Addition__OperationAlternatives_1_1_0
            {
            pushFollow(FOLLOW_rule__Addition__OperationAlternatives_1_1_0_in_rule__Addition__OperationAssignment_1_129515);
            rule__Addition__OperationAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getOperationAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__OperationAssignment_1_1"


    // $ANTLR start "rule__Addition__RightAssignment_1_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14623:1: rule__Addition__RightAssignment_1_2 : ( ruleAddition ) ;
    public final void rule__Addition__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14627:1: ( ( ruleAddition ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14628:1: ( ruleAddition )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14628:1: ( ruleAddition )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14629:1: ruleAddition
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAdditionAccess().getRightAdditionParserRuleCall_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleAddition_in_rule__Addition__RightAssignment_1_229548);
            ruleAddition();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAdditionAccess().getRightAdditionParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Addition__RightAssignment_1_2"


    // $ANTLR start "rule__Multiplication__OperationAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14638:1: rule__Multiplication__OperationAssignment_1_1 : ( ( rule__Multiplication__OperationAlternatives_1_1_0 ) ) ;
    public final void rule__Multiplication__OperationAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14642:1: ( ( ( rule__Multiplication__OperationAlternatives_1_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14643:1: ( ( rule__Multiplication__OperationAlternatives_1_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14643:1: ( ( rule__Multiplication__OperationAlternatives_1_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14644:1: ( rule__Multiplication__OperationAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getOperationAlternatives_1_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14645:1: ( rule__Multiplication__OperationAlternatives_1_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14645:2: rule__Multiplication__OperationAlternatives_1_1_0
            {
            pushFollow(FOLLOW_rule__Multiplication__OperationAlternatives_1_1_0_in_rule__Multiplication__OperationAssignment_1_129579);
            rule__Multiplication__OperationAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getOperationAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__OperationAssignment_1_1"


    // $ANTLR start "rule__Multiplication__RightAssignment_1_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14654:1: rule__Multiplication__RightAssignment_1_2 : ( ruleMultiplication ) ;
    public final void rule__Multiplication__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14658:1: ( ( ruleMultiplication ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14659:1: ( ruleMultiplication )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14659:1: ( ruleMultiplication )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14660:1: ruleMultiplication
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getMultiplicationAccess().getRightMultiplicationParserRuleCall_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleMultiplication_in_rule__Multiplication__RightAssignment_1_229612);
            ruleMultiplication();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getMultiplicationAccess().getRightMultiplicationParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Multiplication__RightAssignment_1_2"


    // $ANTLR start "rule__Primary__ValueAssignment_0_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14669:1: rule__Primary__ValueAssignment_0_1 : ( ruleCount ) ;
    public final void rule__Primary__ValueAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14673:1: ( ( ruleCount ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14674:1: ( ruleCount )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14674:1: ( ruleCount )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14675:1: ruleCount
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueCountParserRuleCall_0_1_0()); 
            }
            pushFollow(FOLLOW_ruleCount_in_rule__Primary__ValueAssignment_0_129643);
            ruleCount();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueCountParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_0_1"


    // $ANTLR start "rule__Primary__ValueAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14684:1: rule__Primary__ValueAssignment_1_1 : ( ruleLibraryTerm ) ;
    public final void rule__Primary__ValueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14688:1: ( ( ruleLibraryTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14689:1: ( ruleLibraryTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14689:1: ( ruleLibraryTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14690:1: ruleLibraryTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueLibraryTermParserRuleCall_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleLibraryTerm_in_rule__Primary__ValueAssignment_1_129674);
            ruleLibraryTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueLibraryTermParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_1_1"


    // $ANTLR start "rule__Primary__ValueAssignment_2_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14699:1: rule__Primary__ValueAssignment_2_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__Primary__ValueAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14703:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14704:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14704:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14705:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueIDENTIFIERTerminalRuleCall_2_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Primary__ValueAssignment_2_129705); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueIDENTIFIERTerminalRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_2_1"


    // $ANTLR start "rule__Primary__ValueAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14714:1: rule__Primary__ValueAssignment_3_1 : ( ruleVariable ) ;
    public final void rule__Primary__ValueAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14718:1: ( ( ruleVariable ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14719:1: ( ruleVariable )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14719:1: ( ruleVariable )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14720:1: ruleVariable
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueVariableParserRuleCall_3_1_0()); 
            }
            pushFollow(FOLLOW_ruleVariable_in_rule__Primary__ValueAssignment_3_129736);
            ruleVariable();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueVariableParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_3_1"


    // $ANTLR start "rule__Primary__ValueAssignment_4_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14729:1: rule__Primary__ValueAssignment_4_1 : ( ruleNumber ) ;
    public final void rule__Primary__ValueAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14733:1: ( ( ruleNumber ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14734:1: ( ruleNumber )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14734:1: ( ruleNumber )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14735:1: ruleNumber
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueNumberParserRuleCall_4_1_0()); 
            }
            pushFollow(FOLLOW_ruleNumber_in_rule__Primary__ValueAssignment_4_129767);
            ruleNumber();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueNumberParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_4_1"


    // $ANTLR start "rule__Primary__ValueAssignment_5_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14744:1: rule__Primary__ValueAssignment_5_1 : ( RULE_STRING ) ;
    public final void rule__Primary__ValueAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14748:1: ( ( RULE_STRING ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14749:1: ( RULE_STRING )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14749:1: ( RULE_STRING )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14750:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueSTRINGTerminalRuleCall_5_1_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Primary__ValueAssignment_5_129798); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueSTRINGTerminalRuleCall_5_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_5_1"


    // $ANTLR start "rule__Primary__ValueAssignment_7_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14759:1: rule__Primary__ValueAssignment_7_1 : ( ruleList ) ;
    public final void rule__Primary__ValueAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14763:1: ( ( ruleList ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14764:1: ( ruleList )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14764:1: ( ruleList )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14765:1: ruleList
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPrimaryAccess().getValueListParserRuleCall_7_1_0()); 
            }
            pushFollow(FOLLOW_ruleList_in_rule__Primary__ValueAssignment_7_129829);
            ruleList();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPrimaryAccess().getValueListParserRuleCall_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Primary__ValueAssignment_7_1"


    // $ANTLR start "rule__LibraryFormula__ModuleAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14774:1: rule__LibraryFormula__ModuleAssignment_0 : ( RULE_IDENTIFIER ) ;
    public final void rule__LibraryFormula__ModuleAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14778:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14779:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14779:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14780:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaAccess().getModuleIDENTIFIERTerminalRuleCall_0_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__LibraryFormula__ModuleAssignment_029860); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaAccess().getModuleIDENTIFIERTerminalRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__ModuleAssignment_0"


    // $ANTLR start "rule__LibraryFormula__ActionAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14789:1: rule__LibraryFormula__ActionAssignment_2 : ( rulePredicate ) ;
    public final void rule__LibraryFormula__ActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14793:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14794:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14794:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14795:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryFormulaAccess().getActionPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__LibraryFormula__ActionAssignment_229891);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryFormulaAccess().getActionPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryFormula__ActionAssignment_2"


    // $ANTLR start "rule__Predicate__IdAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14804:1: rule__Predicate__IdAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__Predicate__IdAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14808:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14809:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14809:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14810:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getIdIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Predicate__IdAssignment_129922); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getIdIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__IdAssignment_1"


    // $ANTLR start "rule__Predicate__TermsAssignment_2_1_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14819:1: rule__Predicate__TermsAssignment_2_1_0 : ( ruleTerm ) ;
    public final void rule__Predicate__TermsAssignment_2_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14823:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14824:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14824:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14825:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getTermsTermParserRuleCall_2_1_0_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__Predicate__TermsAssignment_2_1_029953);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getTermsTermParserRuleCall_2_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__TermsAssignment_2_1_0"


    // $ANTLR start "rule__Predicate__TermsAssignment_2_1_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14834:1: rule__Predicate__TermsAssignment_2_1_1_1 : ( ruleTerm ) ;
    public final void rule__Predicate__TermsAssignment_2_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14838:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14839:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14839:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14840:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getPredicateAccess().getTermsTermParserRuleCall_2_1_1_1_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__Predicate__TermsAssignment_2_1_1_129984);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getPredicateAccess().getTermsTermParserRuleCall_2_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Predicate__TermsAssignment_2_1_1_1"


    // $ANTLR start "rule__Type__TypeAssignment_0_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14850:1: rule__Type__TypeAssignment_0_1 : ( ( 'int' ) ) ;
    public final void rule__Type__TypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14854:1: ( ( ( 'int' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14855:1: ( ( 'int' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14855:1: ( ( 'int' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14856:1: ( 'int' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeIntKeyword_0_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14857:1: ( 'int' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14858:1: 'int'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeIntKeyword_0_1_0()); 
            }
            match(input,85,FOLLOW_85_in_rule__Type__TypeAssignment_0_130021); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeIntKeyword_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeIntKeyword_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_0_1"


    // $ANTLR start "rule__Type__TypeAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14873:1: rule__Type__TypeAssignment_1_1 : ( ( 'long' ) ) ;
    public final void rule__Type__TypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14877:1: ( ( ( 'long' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14878:1: ( ( 'long' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14878:1: ( ( 'long' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14879:1: ( 'long' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeLongKeyword_1_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14880:1: ( 'long' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14881:1: 'long'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeLongKeyword_1_1_0()); 
            }
            match(input,86,FOLLOW_86_in_rule__Type__TypeAssignment_1_130065); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeLongKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeLongKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_1_1"


    // $ANTLR start "rule__Type__TypeAssignment_2_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14896:1: rule__Type__TypeAssignment_2_1 : ( ( 'float' ) ) ;
    public final void rule__Type__TypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14900:1: ( ( ( 'float' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14901:1: ( ( 'float' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14901:1: ( ( 'float' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14902:1: ( 'float' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeFloatKeyword_2_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14903:1: ( 'float' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14904:1: 'float'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeFloatKeyword_2_1_0()); 
            }
            match(input,87,FOLLOW_87_in_rule__Type__TypeAssignment_2_130109); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeFloatKeyword_2_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeFloatKeyword_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_2_1"


    // $ANTLR start "rule__Type__TypeAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14919:1: rule__Type__TypeAssignment_3_1 : ( ( 'double' ) ) ;
    public final void rule__Type__TypeAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14923:1: ( ( ( 'double' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14924:1: ( ( 'double' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14924:1: ( ( 'double' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14925:1: ( 'double' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeDoubleKeyword_3_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14926:1: ( 'double' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14927:1: 'double'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeDoubleKeyword_3_1_0()); 
            }
            match(input,88,FOLLOW_88_in_rule__Type__TypeAssignment_3_130153); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeDoubleKeyword_3_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeDoubleKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_3_1"


    // $ANTLR start "rule__Type__TypeAssignment_4_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14942:1: rule__Type__TypeAssignment_4_1 : ( ( 'string' ) ) ;
    public final void rule__Type__TypeAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14946:1: ( ( ( 'string' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14947:1: ( ( 'string' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14947:1: ( ( 'string' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14948:1: ( 'string' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeStringKeyword_4_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14949:1: ( 'string' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14950:1: 'string'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeStringKeyword_4_1_0()); 
            }
            match(input,89,FOLLOW_89_in_rule__Type__TypeAssignment_4_130197); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeStringKeyword_4_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeStringKeyword_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_4_1"


    // $ANTLR start "rule__Type__TypeAssignment_5_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14965:1: rule__Type__TypeAssignment_5_1 : ( ( 'char' ) ) ;
    public final void rule__Type__TypeAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14969:1: ( ( ( 'char' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14970:1: ( ( 'char' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14970:1: ( ( 'char' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14971:1: ( 'char' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeCharKeyword_5_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14972:1: ( 'char' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14973:1: 'char'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeCharKeyword_5_1_0()); 
            }
            match(input,90,FOLLOW_90_in_rule__Type__TypeAssignment_5_130241); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeCharKeyword_5_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeCharKeyword_5_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_5_1"


    // $ANTLR start "rule__Type__TypeAssignment_6_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14988:1: rule__Type__TypeAssignment_6_1 : ( ( 'boolean' ) ) ;
    public final void rule__Type__TypeAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14992:1: ( ( ( 'boolean' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14993:1: ( ( 'boolean' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14993:1: ( ( 'boolean' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14994:1: ( 'boolean' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeBooleanKeyword_6_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14995:1: ( 'boolean' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:14996:1: 'boolean'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeBooleanKeyword_6_1_0()); 
            }
            match(input,91,FOLLOW_91_in_rule__Type__TypeAssignment_6_130285); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeBooleanKeyword_6_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeBooleanKeyword_6_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_6_1"


    // $ANTLR start "rule__Type__TypeAssignment_7_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15011:1: rule__Type__TypeAssignment_7_1 : ( ( 'list' ) ) ;
    public final void rule__Type__TypeAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15015:1: ( ( ( 'list' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15016:1: ( ( 'list' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15016:1: ( ( 'list' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15017:1: ( 'list' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeListKeyword_7_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15018:1: ( 'list' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15019:1: 'list'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeListKeyword_7_1_0()); 
            }
            match(input,67,FOLLOW_67_in_rule__Type__TypeAssignment_7_130329); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeListKeyword_7_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeListKeyword_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_7_1"


    // $ANTLR start "rule__Type__TypeAssignment_8_1_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15034:1: rule__Type__TypeAssignment_8_1_2 : ( ruleQualifiedName ) ;
    public final void rule__Type__TypeAssignment_8_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15038:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15039:1: ( ruleQualifiedName )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15039:1: ( ruleQualifiedName )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15040:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeAccess().getTypeQualifiedNameParserRuleCall_8_1_2_0()); 
            }
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Type__TypeAssignment_8_1_230368);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeAccess().getTypeQualifiedNameParserRuleCall_8_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__TypeAssignment_8_1_2"


    // $ANTLR start "rule__Variable__TypeAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15049:1: rule__Variable__TypeAssignment_0 : ( ruleType ) ;
    public final void rule__Variable__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15053:1: ( ( ruleType ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15054:1: ( ruleType )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15054:1: ( ruleType )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15055:1: ruleType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVariableAccess().getTypeTypeParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleType_in_rule__Variable__TypeAssignment_030399);
            ruleType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getVariableAccess().getTypeTypeParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Variable__TypeAssignment_0"


    // $ANTLR start "rule__Variable__ValueAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15064:1: rule__Variable__ValueAssignment_1 : ( RULE_IDENTIFIER ) ;
    public final void rule__Variable__ValueAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15068:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15069:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15069:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15070:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getVariableAccess().getValueIDENTIFIERTerminalRuleCall_1_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Variable__ValueAssignment_130430); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getVariableAccess().getValueIDENTIFIERTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Variable__ValueAssignment_1"


    // $ANTLR start "rule__Assignment__VariableAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15079:1: rule__Assignment__VariableAssignment_0 : ( RULE_IDENTIFIER ) ;
    public final void rule__Assignment__VariableAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15083:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15084:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15084:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15085:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentAccess().getVariableIDENTIFIERTerminalRuleCall_0_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__Assignment__VariableAssignment_030461); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentAccess().getVariableIDENTIFIERTerminalRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__VariableAssignment_0"


    // $ANTLR start "rule__Assignment__ValueAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15094:1: rule__Assignment__ValueAssignment_2 : ( ( rule__Assignment__ValueAlternatives_2_0 ) ) ;
    public final void rule__Assignment__ValueAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15098:1: ( ( ( rule__Assignment__ValueAlternatives_2_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15099:1: ( ( rule__Assignment__ValueAlternatives_2_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15099:1: ( ( rule__Assignment__ValueAlternatives_2_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15100:1: ( rule__Assignment__ValueAlternatives_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getAssignmentAccess().getValueAlternatives_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15101:1: ( rule__Assignment__ValueAlternatives_2_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15101:2: rule__Assignment__ValueAlternatives_2_0
            {
            pushFollow(FOLLOW_rule__Assignment__ValueAlternatives_2_0_in_rule__Assignment__ValueAssignment_230492);
            rule__Assignment__ValueAlternatives_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getAssignmentAccess().getValueAlternatives_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Assignment__ValueAssignment_2"


    // $ANTLR start "rule__BeliefUpdate__TypeAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15110:1: rule__BeliefUpdate__TypeAssignment_0 : ( ( rule__BeliefUpdate__TypeAlternatives_0_0 ) ) ;
    public final void rule__BeliefUpdate__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15114:1: ( ( ( rule__BeliefUpdate__TypeAlternatives_0_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15115:1: ( ( rule__BeliefUpdate__TypeAlternatives_0_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15115:1: ( ( rule__BeliefUpdate__TypeAlternatives_0_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15116:1: ( rule__BeliefUpdate__TypeAlternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBeliefUpdateAccess().getTypeAlternatives_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15117:1: ( rule__BeliefUpdate__TypeAlternatives_0_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15117:2: rule__BeliefUpdate__TypeAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__BeliefUpdate__TypeAlternatives_0_0_in_rule__BeliefUpdate__TypeAssignment_030525);
            rule__BeliefUpdate__TypeAlternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getBeliefUpdateAccess().getTypeAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__TypeAssignment_0"


    // $ANTLR start "rule__BeliefUpdate__PredicateAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15126:1: rule__BeliefUpdate__PredicateAssignment_1 : ( rulePredicate ) ;
    public final void rule__BeliefUpdate__PredicateAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15130:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15131:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15131:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15132:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBeliefUpdateAccess().getPredicatePredicateParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__BeliefUpdate__PredicateAssignment_130558);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBeliefUpdateAccess().getPredicatePredicateParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BeliefUpdate__PredicateAssignment_1"


    // $ANTLR start "rule__Block__StepsAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15141:1: rule__Block__StepsAssignment_2 : ( ruleStatement ) ;
    public final void rule__Block__StepsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15145:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15146:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15146:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15147:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getBlockAccess().getStepsStatementParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__Block__StepsAssignment_230589);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getBlockAccess().getStepsStatementParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Block__StepsAssignment_2"


    // $ANTLR start "rule__SynchronizedBlock__TokenAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15156:1: rule__SynchronizedBlock__TokenAssignment_2 : ( RULE_IDENTIFIER ) ;
    public final void rule__SynchronizedBlock__TokenAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15160:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15161:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15161:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15162:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getTokenIDENTIFIERTerminalRuleCall_2_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__SynchronizedBlock__TokenAssignment_230620); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getTokenIDENTIFIERTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__TokenAssignment_2"


    // $ANTLR start "rule__SynchronizedBlock__BlockAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15171:1: rule__SynchronizedBlock__BlockAssignment_4 : ( ruleBlock ) ;
    public final void rule__SynchronizedBlock__BlockAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15175:1: ( ( ruleBlock ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15176:1: ( ruleBlock )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15176:1: ( ruleBlock )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15177:1: ruleBlock
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSynchronizedBlockAccess().getBlockBlockParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleBlock_in_rule__SynchronizedBlock__BlockAssignment_430651);
            ruleBlock();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSynchronizedBlockAccess().getBlockBlockParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SynchronizedBlock__BlockAssignment_4"


    // $ANTLR start "rule__ForEach__GuardAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15186:1: rule__ForEach__GuardAssignment_2 : ( ruleAND ) ;
    public final void rule__ForEach__GuardAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15190:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15191:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15191:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15192:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getGuardANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__ForEach__GuardAssignment_230682);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getGuardANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__GuardAssignment_2"


    // $ANTLR start "rule__ForEach__BodyAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15201:1: rule__ForEach__BodyAssignment_4 : ( ruleStatement ) ;
    public final void rule__ForEach__BodyAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15205:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15206:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15206:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15207:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getForEachAccess().getBodyStatementParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__ForEach__BodyAssignment_430713);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getForEachAccess().getBodyStatementParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ForEach__BodyAssignment_4"


    // $ANTLR start "rule__GoalStep__SpawnedAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15216:1: rule__GoalStep__SpawnedAssignment_0 : ( ( '!' ) ) ;
    public final void rule__GoalStep__SpawnedAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15220:1: ( ( ( '!' ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15221:1: ( ( '!' ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15221:1: ( ( '!' ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15222:1: ( '!' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepAccess().getSpawnedExclamationMarkKeyword_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15223:1: ( '!' )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15224:1: '!'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepAccess().getSpawnedExclamationMarkKeyword_0_0()); 
            }
            match(input,61,FOLLOW_61_in_rule__GoalStep__SpawnedAssignment_030749); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepAccess().getSpawnedExclamationMarkKeyword_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepAccess().getSpawnedExclamationMarkKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GoalStep__SpawnedAssignment_0"


    // $ANTLR start "rule__GoalStep__GoalAssignment_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15239:1: rule__GoalStep__GoalAssignment_1 : ( ruleGoal ) ;
    public final void rule__GoalStep__GoalAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15243:1: ( ( ruleGoal ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15244:1: ( ruleGoal )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15244:1: ( ruleGoal )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15245:1: ruleGoal
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getGoalStepAccess().getGoalGoalParserRuleCall_1_0()); 
            }
            pushFollow(FOLLOW_ruleGoal_in_rule__GoalStep__GoalAssignment_130788);
            ruleGoal();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getGoalStepAccess().getGoalGoalParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__GoalStep__GoalAssignment_1"


    // $ANTLR start "rule__SendMessage__PerformativeAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15254:1: rule__SendMessage__PerformativeAssignment_2 : ( ruleTerm ) ;
    public final void rule__SendMessage__PerformativeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15258:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15259:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15259:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15260:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getPerformativeTermParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__SendMessage__PerformativeAssignment_230819);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getPerformativeTermParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__PerformativeAssignment_2"


    // $ANTLR start "rule__SendMessage__AgentAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15269:1: rule__SendMessage__AgentAssignment_4 : ( ruleTerm ) ;
    public final void rule__SendMessage__AgentAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15273:1: ( ( ruleTerm ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15274:1: ( ruleTerm )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15274:1: ( ruleTerm )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15275:1: ruleTerm
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getAgentTermParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleTerm_in_rule__SendMessage__AgentAssignment_430850);
            ruleTerm();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getAgentTermParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__AgentAssignment_4"


    // $ANTLR start "rule__SendMessage__ContentAssignment_6"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15284:1: rule__SendMessage__ContentAssignment_6 : ( rulePredicate ) ;
    public final void rule__SendMessage__ContentAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15288:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15289:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15289:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15290:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSendMessageAccess().getContentPredicateParserRuleCall_6_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__SendMessage__ContentAssignment_630881);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSendMessageAccess().getContentPredicateParserRuleCall_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SendMessage__ContentAssignment_6"


    // $ANTLR start "rule__EISSetup__IdAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15299:1: rule__EISSetup__IdAssignment_2 : ( ( rule__EISSetup__IdAlternatives_2_0 ) ) ;
    public final void rule__EISSetup__IdAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15303:1: ( ( ( rule__EISSetup__IdAlternatives_2_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15304:1: ( ( rule__EISSetup__IdAlternatives_2_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15304:1: ( ( rule__EISSetup__IdAlternatives_2_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15305:1: ( rule__EISSetup__IdAlternatives_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getIdAlternatives_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15306:1: ( rule__EISSetup__IdAlternatives_2_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15306:2: rule__EISSetup__IdAlternatives_2_0
            {
            pushFollow(FOLLOW_rule__EISSetup__IdAlternatives_2_0_in_rule__EISSetup__IdAssignment_230912);
            rule__EISSetup__IdAlternatives_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getIdAlternatives_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__IdAssignment_2"


    // $ANTLR start "rule__EISSetup__JarAssignment_3_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15315:1: rule__EISSetup__JarAssignment_3_1 : ( ( rule__EISSetup__JarAlternatives_3_1_0 ) ) ;
    public final void rule__EISSetup__JarAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15319:1: ( ( ( rule__EISSetup__JarAlternatives_3_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15320:1: ( ( rule__EISSetup__JarAlternatives_3_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15320:1: ( ( rule__EISSetup__JarAlternatives_3_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15321:1: ( rule__EISSetup__JarAlternatives_3_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISSetupAccess().getJarAlternatives_3_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15322:1: ( rule__EISSetup__JarAlternatives_3_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15322:2: rule__EISSetup__JarAlternatives_3_1_0
            {
            pushFollow(FOLLOW_rule__EISSetup__JarAlternatives_3_1_0_in_rule__EISSetup__JarAssignment_3_130945);
            rule__EISSetup__JarAlternatives_3_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISSetupAccess().getJarAlternatives_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISSetup__JarAssignment_3_1"


    // $ANTLR start "rule__EISPerform__IdAssignment_2_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15331:1: rule__EISPerform__IdAssignment_2_0 : ( RULE_STRING ) ;
    public final void rule__EISPerform__IdAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15335:1: ( ( RULE_STRING ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15336:1: ( RULE_STRING )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15336:1: ( RULE_STRING )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15337:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getIdSTRINGTerminalRuleCall_2_0_0()); 
            }
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__EISPerform__IdAssignment_2_030978); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getIdSTRINGTerminalRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__IdAssignment_2_0"


    // $ANTLR start "rule__EISPerform__ActionAssignment_3"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15346:1: rule__EISPerform__ActionAssignment_3 : ( rulePredicate ) ;
    public final void rule__EISPerform__ActionAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15350:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15351:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15351:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15352:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getEISPerformAccess().getActionPredicateParserRuleCall_3_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__EISPerform__ActionAssignment_331009);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getEISPerformAccess().getActionPredicateParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__EISPerform__ActionAssignment_3"


    // $ANTLR start "rule__If__GuardAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15361:1: rule__If__GuardAssignment_2 : ( ruleAND ) ;
    public final void rule__If__GuardAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15365:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15366:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15366:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15367:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getGuardANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__If__GuardAssignment_231040);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getGuardANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__GuardAssignment_2"


    // $ANTLR start "rule__If__IfStepAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15376:1: rule__If__IfStepAssignment_4 : ( ruleStatement ) ;
    public final void rule__If__IfStepAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15380:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15381:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15381:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15382:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getIfStepStatementParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__If__IfStepAssignment_431071);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getIfStepStatementParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__IfStepAssignment_4"


    // $ANTLR start "rule__If__ElseStepAssignment_5_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15391:1: rule__If__ElseStepAssignment_5_1 : ( ruleStatement ) ;
    public final void rule__If__ElseStepAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15395:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15396:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15396:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15397:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIfAccess().getElseStepStatementParserRuleCall_5_1_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__If__ElseStepAssignment_5_131102);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIfAccess().getElseStepStatementParserRuleCall_5_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__If__ElseStepAssignment_5_1"


    // $ANTLR start "rule__LibraryAction__ModuleAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15406:1: rule__LibraryAction__ModuleAssignment_0 : ( RULE_IDENTIFIER ) ;
    public final void rule__LibraryAction__ModuleAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15410:1: ( ( RULE_IDENTIFIER ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15411:1: ( RULE_IDENTIFIER )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15411:1: ( RULE_IDENTIFIER )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15412:1: RULE_IDENTIFIER
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionAccess().getModuleIDENTIFIERTerminalRuleCall_0_0()); 
            }
            match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_rule__LibraryAction__ModuleAssignment_031133); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionAccess().getModuleIDENTIFIERTerminalRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__ModuleAssignment_0"


    // $ANTLR start "rule__LibraryAction__ActionAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15421:1: rule__LibraryAction__ActionAssignment_2 : ( rulePredicate ) ;
    public final void rule__LibraryAction__ActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15425:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15426:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15426:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15427:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getLibraryActionAccess().getActionPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__LibraryAction__ActionAssignment_231164);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getLibraryActionAccess().getActionPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__LibraryAction__ActionAssignment_2"


    // $ANTLR start "rule__Query__FormulaAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15437:1: rule__Query__FormulaAssignment_2 : ( ruleAND ) ;
    public final void rule__Query__FormulaAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15441:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15442:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15442:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15443:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQueryAccess().getFormulaANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__Query__FormulaAssignment_231196);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQueryAccess().getFormulaANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Query__FormulaAssignment_2"


    // $ANTLR start "rule__TRActive__PredicateAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15452:1: rule__TRActive__PredicateAssignment_2 : ( rulePredicate ) ;
    public final void rule__TRActive__PredicateAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15456:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15457:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15457:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15458:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRActiveAccess().getPredicatePredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TRActive__PredicateAssignment_231227);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRActiveAccess().getPredicatePredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRActive__PredicateAssignment_2"


    // $ANTLR start "rule__TRControl__ModeAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15467:1: rule__TRControl__ModeAssignment_0 : ( ( rule__TRControl__ModeAlternatives_0_0 ) ) ;
    public final void rule__TRControl__ModeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15471:1: ( ( ( rule__TRControl__ModeAlternatives_0_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15472:1: ( ( rule__TRControl__ModeAlternatives_0_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15472:1: ( ( rule__TRControl__ModeAlternatives_0_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15473:1: ( rule__TRControl__ModeAlternatives_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getModeAlternatives_0_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15474:1: ( rule__TRControl__ModeAlternatives_0_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15474:2: rule__TRControl__ModeAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__TRControl__ModeAlternatives_0_0_in_rule__TRControl__ModeAssignment_031258);
            rule__TRControl__ModeAlternatives_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getModeAlternatives_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__ModeAssignment_0"


    // $ANTLR start "rule__TRControl__FunctionAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15483:1: rule__TRControl__FunctionAssignment_2 : ( rulePredicate ) ;
    public final void rule__TRControl__FunctionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15487:1: ( ( rulePredicate ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15488:1: ( rulePredicate )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15488:1: ( rulePredicate )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15489:1: rulePredicate
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTRControlAccess().getFunctionPredicateParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_rulePredicate_in_rule__TRControl__FunctionAssignment_231291);
            rulePredicate();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTRControlAccess().getFunctionPredicateParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TRControl__FunctionAssignment_2"


    // $ANTLR start "rule__TypeStep__VariableAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15498:1: rule__TypeStep__VariableAssignment_0 : ( ruleVariable ) ;
    public final void rule__TypeStep__VariableAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15502:1: ( ( ruleVariable ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15503:1: ( ruleVariable )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15503:1: ( ruleVariable )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15504:1: ruleVariable
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getVariableVariableParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleVariable_in_rule__TypeStep__VariableAssignment_031322);
            ruleVariable();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getVariableVariableParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__VariableAssignment_0"


    // $ANTLR start "rule__TypeStep__ValueAssignment_1_1"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15513:1: rule__TypeStep__ValueAssignment_1_1 : ( ( rule__TypeStep__ValueAlternatives_1_1_0 ) ) ;
    public final void rule__TypeStep__ValueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15517:1: ( ( ( rule__TypeStep__ValueAlternatives_1_1_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15518:1: ( ( rule__TypeStep__ValueAlternatives_1_1_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15518:1: ( ( rule__TypeStep__ValueAlternatives_1_1_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15519:1: ( rule__TypeStep__ValueAlternatives_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTypeStepAccess().getValueAlternatives_1_1_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15520:1: ( rule__TypeStep__ValueAlternatives_1_1_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15520:2: rule__TypeStep__ValueAlternatives_1_1_0
            {
            pushFollow(FOLLOW_rule__TypeStep__ValueAlternatives_1_1_0_in_rule__TypeStep__ValueAssignment_1_131353);
            rule__TypeStep__ValueAlternatives_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTypeStepAccess().getValueAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeStep__ValueAssignment_1_1"


    // $ANTLR start "rule__Wait__FormulaAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15529:1: rule__Wait__FormulaAssignment_2 : ( ruleAND ) ;
    public final void rule__Wait__FormulaAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15533:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15534:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15534:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15535:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWaitAccess().getFormulaANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__Wait__FormulaAssignment_231386);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWaitAccess().getFormulaANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Wait__FormulaAssignment_2"


    // $ANTLR start "rule__When__GuardAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15544:1: rule__When__GuardAssignment_2 : ( ruleAND ) ;
    public final void rule__When__GuardAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15548:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15549:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15549:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15550:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getGuardANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__When__GuardAssignment_231417);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getGuardANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__GuardAssignment_2"


    // $ANTLR start "rule__When__BodyAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15559:1: rule__When__BodyAssignment_4 : ( ruleStatement ) ;
    public final void rule__When__BodyAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15563:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15564:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15564:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15565:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhenAccess().getBodyStatementParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__When__BodyAssignment_431448);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhenAccess().getBodyStatementParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__When__BodyAssignment_4"


    // $ANTLR start "rule__While__GuardAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15574:1: rule__While__GuardAssignment_2 : ( ruleAND ) ;
    public final void rule__While__GuardAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15578:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15579:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15579:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15580:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getGuardANDParserRuleCall_2_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__While__GuardAssignment_231479);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getGuardANDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__GuardAssignment_2"


    // $ANTLR start "rule__While__BodyAssignment_4"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15589:1: rule__While__BodyAssignment_4 : ( ruleStatement ) ;
    public final void rule__While__BodyAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15593:1: ( ( ruleStatement ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15594:1: ( ruleStatement )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15594:1: ( ruleStatement )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15595:1: ruleStatement
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getWhileAccess().getBodyStatementParserRuleCall_4_0()); 
            }
            pushFollow(FOLLOW_ruleStatement_in_rule__While__BodyAssignment_431510);
            ruleStatement();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getWhileAccess().getBodyStatementParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__While__BodyAssignment_4"


    // $ANTLR start "rule__TeleoReactiveRule__ContextAssignment_0"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15604:1: rule__TeleoReactiveRule__ContextAssignment_0 : ( ruleAND ) ;
    public final void rule__TeleoReactiveRule__ContextAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15608:1: ( ( ruleAND ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15609:1: ( ruleAND )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15609:1: ( ruleAND )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15610:1: ruleAND
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleAccess().getContextANDParserRuleCall_0_0()); 
            }
            pushFollow(FOLLOW_ruleAND_in_rule__TeleoReactiveRule__ContextAssignment_031541);
            ruleAND();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleAccess().getContextANDParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__ContextAssignment_0"


    // $ANTLR start "rule__TeleoReactiveRule__OperationAssignment_2"
    // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15619:1: rule__TeleoReactiveRule__OperationAssignment_2 : ( ( rule__TeleoReactiveRule__OperationAlternatives_2_0 ) ) ;
    public final void rule__TeleoReactiveRule__OperationAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15623:1: ( ( ( rule__TeleoReactiveRule__OperationAlternatives_2_0 ) ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15624:1: ( ( rule__TeleoReactiveRule__OperationAlternatives_2_0 ) )
            {
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15624:1: ( ( rule__TeleoReactiveRule__OperationAlternatives_2_0 ) )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15625:1: ( rule__TeleoReactiveRule__OperationAlternatives_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getTeleoReactiveRuleAccess().getOperationAlternatives_2_0()); 
            }
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15626:1: ( rule__TeleoReactiveRule__OperationAlternatives_2_0 )
            // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:15626:2: rule__TeleoReactiveRule__OperationAlternatives_2_0
            {
            pushFollow(FOLLOW_rule__TeleoReactiveRule__OperationAlternatives_2_0_in_rule__TeleoReactiveRule__OperationAssignment_231572);
            rule__TeleoReactiveRule__OperationAlternatives_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getTeleoReactiveRuleAccess().getOperationAlternatives_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TeleoReactiveRule__OperationAssignment_2"

    // $ANTLR start synpred41_InternalAstra
    public final void synpred41_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2630:1: ( ( ruleComparison ) )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2630:1: ( ruleComparison )
        {
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2630:1: ( ruleComparison )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2631:1: ruleComparison
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getFormulaAccess().getComparisonParserRuleCall_0()); 
        }
        pushFollow(FOLLOW_ruleComparison_in_synpred41_InternalAstra5686);
        ruleComparison();

        state._fsp--;
        if (state.failed) return ;

        }


        }
    }
    // $ANTLR end synpred41_InternalAstra

    // $ANTLR start synpred42_InternalAstra
    public final void synpred42_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2636:6: ( ( ruleLibraryFormula ) )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2636:6: ( ruleLibraryFormula )
        {
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2636:6: ( ruleLibraryFormula )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2637:1: ruleLibraryFormula
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getFormulaAccess().getLibraryFormulaParserRuleCall_1()); 
        }
        pushFollow(FOLLOW_ruleLibraryFormula_in_synpred42_InternalAstra5703);
        ruleLibraryFormula();

        state._fsp--;
        if (state.failed) return ;

        }


        }
    }
    // $ANTLR end synpred42_InternalAstra

    // $ANTLR start synpred43_InternalAstra
    public final void synpred43_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2642:6: ( ( ruleNOT ) )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2642:6: ( ruleNOT )
        {
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2642:6: ( ruleNOT )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:2643:1: ruleNOT
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getFormulaAccess().getNOTParserRuleCall_2()); 
        }
        pushFollow(FOLLOW_ruleNOT_in_synpred43_InternalAstra5720);
        ruleNOT();

        state._fsp--;
        if (state.failed) return ;

        }


        }
    }
    // $ANTLR end synpred43_InternalAstra

    // $ANTLR start synpred104_InternalAstra
    public final void synpred104_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8589:2: ( rule__Addition__Group_1__0 )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8589:2: rule__Addition__Group_1__0
        {
        pushFollow(FOLLOW_rule__Addition__Group_1__0_in_synpred104_InternalAstra17618);
        rule__Addition__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred104_InternalAstra

    // $ANTLR start synpred105_InternalAstra
    public final void synpred105_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8744:2: ( rule__Multiplication__Group_1__0 )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:8744:2: rule__Multiplication__Group_1__0
        {
        pushFollow(FOLLOW_rule__Multiplication__Group_1__0_in_synpred105_InternalAstra17923);
        rule__Multiplication__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred105_InternalAstra

    // $ANTLR start synpred106_InternalAstra
    public final void synpred106_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9561:2: ( rule__Predicate__Group_2__0 )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:9561:2: rule__Predicate__Group_2__0
        {
        pushFollow(FOLLOW_rule__Predicate__Group_2__0_in_synpred106_InternalAstra19515);
        rule__Predicate__Group_2__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred106_InternalAstra

    // $ANTLR start synpred113_InternalAstra
    public final void synpred113_InternalAstra_fragment() throws RecognitionException {   
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12091:2: ( rule__If__Group_5__0 )
        // ../org.xtext.astra.ui/src-gen/org/xtext/ui/contentassist/antlr/internal/InternalAstra.g:12091:2: rule__If__Group_5__0
        {
        pushFollow(FOLLOW_rule__If__Group_5__0_in_synpred113_InternalAstra24472);
        rule__If__Group_5__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred113_InternalAstra

    // Delegated rules

    public final boolean synpred105_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred105_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred41_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred41_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred106_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred106_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred104_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred104_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred42_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred42_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred113_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred113_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred43_InternalAstra() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred43_InternalAstra_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA15 dfa15 = new DFA15(this);
    protected DFA17 dfa17 = new DFA17(this);
    protected DFA24 dfa24 = new DFA24(this);
    protected DFA60 dfa60 = new DFA60(this);
    static final String DFA15_eotS =
        "\16\uffff";
    static final String DFA15_eofS =
        "\16\uffff";
    static final String DFA15_minS =
        "\1\11\4\uffff\1\46\10\uffff";
    static final String DFA15_maxS =
        "\1\133\4\uffff\1\106\10\uffff";
    static final String DFA15_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\uffff\1\7\1\11\1\12\1\13\1\14\1\10\1"+
        "\6\1\5";
    static final String DFA15_specialS =
        "\16\uffff}>";
    static final String[] DFA15_transitionS = {
            "\1\5\21\uffff\2\1\3\uffff\2\2\33\uffff\1\3\5\uffff\1\6\1\uffff"+
            "\1\6\3\uffff\1\4\1\11\1\12\2\uffff\1\7\1\uffff\1\10\4\uffff"+
            "\7\6",
            "",
            "",
            "",
            "",
            "\1\13\1\uffff\1\14\1\uffff\1\13\33\uffff\1\15",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
    static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
    static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
    static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
    static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
    static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
    static final short[][] DFA15_transition;

    static {
        int numStates = DFA15_transitionS.length;
        DFA15_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
        }
    }

    class DFA15 extends DFA {

        public DFA15(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 15;
            this.eot = DFA15_eot;
            this.eof = DFA15_eof;
            this.min = DFA15_min;
            this.max = DFA15_max;
            this.accept = DFA15_accept;
            this.special = DFA15_special;
            this.transition = DFA15_transition;
        }
        public String getDescription() {
            return "2497:1: rule__Statement__Alternatives_0_0 : ( ( ruleBeliefUpdate ) | ( ruleTRControl ) | ( ruleGoalStep ) | ( ruleSendMessage ) | ( ruleAssignment ) | ( ruleLibraryAction ) | ( ruleTypeStep ) | ( rulePredicate ) | ( ruleQuery ) | ( ruleWait ) | ( ruleEISSetup ) | ( ruleEISPerform ) );";
        }
    }
    static final String DFA17_eotS =
        "\30\uffff";
    static final String DFA17_eofS =
        "\30\uffff";
    static final String DFA17_minS =
        "\1\4\1\uffff\1\0\25\uffff";
    static final String DFA17_maxS =
        "\1\133\1\uffff\1\0\25\uffff";
    static final String DFA17_acceptS =
        "\1\uffff\1\1\23\uffff\1\3\1\4\1\2";
    static final String DFA17_specialS =
        "\2\uffff\1\0\25\uffff}>";
    static final String[] DFA17_transitionS = {
            "\5\1\1\2\21\uffff\2\1\15\uffff\1\1\7\uffff\1\1\17\uffff\2\1"+
            "\1\uffff\1\1\11\uffff\1\26\4\uffff\1\25\7\1",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
    static final short[] DFA17_eof = DFA.unpackEncodedString(DFA17_eofS);
    static final char[] DFA17_min = DFA.unpackEncodedStringToUnsignedChars(DFA17_minS);
    static final char[] DFA17_max = DFA.unpackEncodedStringToUnsignedChars(DFA17_maxS);
    static final short[] DFA17_accept = DFA.unpackEncodedString(DFA17_acceptS);
    static final short[] DFA17_special = DFA.unpackEncodedString(DFA17_specialS);
    static final short[][] DFA17_transition;

    static {
        int numStates = DFA17_transitionS.length;
        DFA17_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA17_transition[i] = DFA.unpackEncodedString(DFA17_transitionS[i]);
        }
    }

    class DFA17 extends DFA {

        public DFA17(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 17;
            this.eot = DFA17_eot;
            this.eof = DFA17_eof;
            this.min = DFA17_min;
            this.max = DFA17_max;
            this.accept = DFA17_accept;
            this.special = DFA17_special;
            this.transition = DFA17_transition;
        }
        public String getDescription() {
            return "2625:1: rule__Formula__Alternatives : ( ( ruleComparison ) | ( ruleLibraryFormula ) | ( ruleNOT ) | ( ruleTRActive ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA17_2 = input.LA(1);

                         
                        int index17_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred41_InternalAstra()) ) {s = 1;}

                        else if ( (synpred42_InternalAstra()) ) {s = 23;}

                        else if ( (synpred43_InternalAstra()) ) {s = 21;}

                         
                        input.seek(index17_2);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 17, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA24_eotS =
        "\12\uffff";
    static final String DFA24_eofS =
        "\2\uffff\1\11\7\uffff";
    static final String DFA24_minS =
        "\1\4\1\uffff\1\11\7\uffff";
    static final String DFA24_maxS =
        "\1\133\1\uffff\1\133\7\uffff";
    static final String DFA24_acceptS =
        "\1\uffff\1\1\1\uffff\1\4\1\5\1\6\1\7\1\10\1\2\1\3";
    static final String DFA24_specialS =
        "\12\uffff}>";
    static final String[] DFA24_transitionS = {
            "\1\5\4\4\1\2\21\uffff\2\4\15\uffff\1\6\7\uffff\1\7\17\uffff"+
            "\1\1\1\3\1\uffff\1\3\17\uffff\7\3",
            "",
            "\1\11\13\uffff\15\11\1\uffff\1\11\2\uffff\1\11\1\uffff\1\10"+
            "\2\uffff\1\11\1\uffff\1\11\5\uffff\1\11\5\uffff\1\11\3\uffff"+
            "\1\11\1\uffff\1\11\3\uffff\3\11\1\uffff\6\11\1\uffff\1\11\1"+
            "\uffff\4\11\1\uffff\7\11",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS);
    static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS);
    static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS);
    static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS);
    static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS);
    static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS);
    static final short[][] DFA24_transition;

    static {
        int numStates = DFA24_transitionS.length;
        DFA24_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]);
        }
    }

    class DFA24 extends DFA {

        public DFA24(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 24;
            this.eot = DFA24_eot;
            this.eof = DFA24_eof;
            this.min = DFA24_min;
            this.max = DFA24_max;
            this.accept = DFA24_accept;
            this.special = DFA24_special;
            this.transition = DFA24_transition;
        }
        public String getDescription() {
            return "2847:1: rule__Primary__Alternatives : ( ( ( rule__Primary__Group_0__0 ) ) | ( ( rule__Primary__Group_1__0 ) ) | ( ( rule__Primary__Group_2__0 ) ) | ( ( rule__Primary__Group_3__0 ) ) | ( ( rule__Primary__Group_4__0 ) ) | ( ( rule__Primary__Group_5__0 ) ) | ( ( rule__Primary__Group_6__0 ) ) | ( ( rule__Primary__Group_7__0 ) ) );";
        }
    }
    static final String DFA60_eotS =
        "\102\uffff";
    static final String DFA60_eofS =
        "\1\2\101\uffff";
    static final String DFA60_minS =
        "\1\4\1\0\100\uffff";
    static final String DFA60_maxS =
        "\1\133\1\0\100\uffff";
    static final String DFA60_acceptS =
        "\2\uffff\1\2\76\uffff\1\1";
    static final String DFA60_specialS =
        "\1\uffff\1\0\100\uffff}>";
    static final String[] DFA60_transitionS = {
            "\6\2\6\uffff\22\2\1\uffff\2\2\1\uffff\1\2\3\uffff\1\1\1\2\1"+
            "\uffff\1\2\4\uffff\2\2\1\uffff\1\2\2\uffff\2\2\2\uffff\4\2\2"+
            "\uffff\4\2\1\uffff\6\2\1\uffff\16\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA60_eot = DFA.unpackEncodedString(DFA60_eotS);
    static final short[] DFA60_eof = DFA.unpackEncodedString(DFA60_eofS);
    static final char[] DFA60_min = DFA.unpackEncodedStringToUnsignedChars(DFA60_minS);
    static final char[] DFA60_max = DFA.unpackEncodedStringToUnsignedChars(DFA60_maxS);
    static final short[] DFA60_accept = DFA.unpackEncodedString(DFA60_acceptS);
    static final short[] DFA60_special = DFA.unpackEncodedString(DFA60_specialS);
    static final short[][] DFA60_transition;

    static {
        int numStates = DFA60_transitionS.length;
        DFA60_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA60_transition[i] = DFA.unpackEncodedString(DFA60_transitionS[i]);
        }
    }

    class DFA60 extends DFA {

        public DFA60(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 60;
            this.eot = DFA60_eot;
            this.eof = DFA60_eof;
            this.min = DFA60_min;
            this.max = DFA60_max;
            this.accept = DFA60_accept;
            this.special = DFA60_special;
            this.transition = DFA60_transition;
        }
        public String getDescription() {
            return "9561:1: ( rule__Predicate__Group_2__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA60_1 = input.LA(1);

                         
                        int index60_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred106_InternalAstra()) ) {s = 65;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index60_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 60, _s, input);
            error(nvae);
            throw nvae;
        }
    }
 

    public static final BitSet FOLLOW_ruleAstra_in_entryRuleAstra67 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAstra74 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Astra__Alternatives_in_ruleAstra100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAgentUnitTest_in_entryRuleAgentUnitTest127 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAgentUnitTest134 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__0_in_ruleAgentUnitTest160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgent_in_entryRuleTestAgent187 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestAgent194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgent__Group__0_in_ruleTestAgent220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestCase_in_entryRuleTestCase247 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestCase254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__Group__0_in_ruleTestCase280 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestStatement_in_entryRuleTestStatement307 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestStatement314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestStatement__Group__0_in_ruleTestStatement340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestOperation_in_entryRuleTestOperation367 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestOperation374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestOperation__Alternatives_in_ruleTestOperation400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentRun_in_entryRuleTestAgentRun427 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestAgentRun434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__0_in_ruleTestAgentRun460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentRunItem_in_entryRuleTestAgentRunItem487 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestAgentRunItem494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Alternatives_in_ruleTestAgentRunItem520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAssert_in_entryRuleTestAssert547 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestAssert554 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAssert__Alternatives_in_ruleTestAssert580 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestEquals_in_entryRuleTestEquals607 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestEquals614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__0_in_ruleTestEquals640 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentProperity_in_entryRuleTestAgentProperity667 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestAgentProperity674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__Group__0_in_ruleTestAgentProperity700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestTrue_in_entryRuleTestTrue727 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestTrue734 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__0_in_ruleTestTrue760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestFalse_in_entryRuleTestFalse787 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestFalse794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__0_in_ruleTestFalse820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestCondition_in_entryRuleTestCondition847 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestCondition854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCondition__Alternatives_in_ruleTestCondition880 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestVerify_in_entryRuleTestVerify907 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestVerify914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__0_in_ruleTestVerify940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestDefinition_in_entryRuleTestDefinition967 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestDefinition974 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestDefinition__Alternatives_in_ruleTestDefinition1000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestBeliefs_in_entryRuleTestBeliefs1027 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestBeliefs1034 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__0_in_ruleTestBeliefs1060 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestBelief_in_entryRuleTestBelief1087 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestBelief1094 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBelief__Group__0_in_ruleTestBelief1120 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestPlan_in_entryRuleTestPlan1147 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestPlan1154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestPlan__Group__0_in_ruleTestPlan1180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestEvent_in_entryRuleTestEvent1207 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestEvent1214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEvent__Group__0_in_ruleTestEvent1240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestGoal_in_entryRuleTestGoal1267 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestGoal1274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestGoal__Group__0_in_ruleTestGoal1300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestRule_in_entryRuleTestRule1327 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTestRule1334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group__0_in_ruleTestRule1360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAgent_in_entryRuleAgent1387 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAgent1394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__0_in_ruleAgent1420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement1447 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractElement1454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractElement__Alternatives_in_ruleAbstractElement1480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInitialStatement_in_entryRuleInitialStatement1507 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInitialStatement1514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InitialStatement__Group__0_in_ruleInitialStatement1540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoal_in_entryRuleGoal1567 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGoal1574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Goal__Group__0_in_ruleGoal1600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlanStatement_in_entryRulePlanStatement1627 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlanStatement1634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__0_in_rulePlanStatement1660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRuleStatement_in_entryRuleRuleStatement1687 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRuleStatement1694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__0_in_ruleRuleStatement1720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTeleoReactiveFunction_in_entryRuleTeleoReactiveFunction1747 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTeleoReactiveFunction1754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__0_in_ruleTeleoReactiveFunction1780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_entryRuleStatement1807 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStatement1814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Statement__Alternatives_in_ruleStatement1840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFormula_in_entryRuleFormula1867 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFormula1874 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Formula__Alternatives_in_ruleFormula1900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_entryRuleAND1927 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAND1934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__Group__0_in_ruleAND1960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComparison_in_entryRuleComparison1987 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComparison1994 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__Group__0_in_ruleComparison2020 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent2047 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEvent2054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Event__Alternatives_in_ruleEvent2080 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMentalEvent_in_entryRuleMentalEvent2107 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMentalEvent2114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__Group__0_in_ruleMentalEvent2140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMessageEvent_in_entryRuleMessageEvent2167 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMessageEvent2174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__0_in_ruleMessageEvent2200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibrary_in_entryRuleLibrary2227 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLibrary2234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Library__Group__0_in_ruleLibrary2260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryTerm_in_entryRuleLibraryTerm2287 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLibraryTerm2294 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryTerm__Group__0_in_ruleLibraryTerm2320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCount_in_entryRuleCount2347 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCount2354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Count__Group__0_in_ruleCount2380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleList_in_entryRuleList2407 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleList2414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group__0_in_ruleList2440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleListConstructor_in_entryRuleListConstructor2467 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleListConstructor2474 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__0_in_ruleListConstructor2500 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNOT_in_entryRuleNOT2527 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNOT2534 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NOT__Group__0_in_ruleNOT2560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_entryRuleTerm2587 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTerm2594 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAddition_in_ruleTerm2620 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAddition_in_entryRuleAddition2646 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAddition2653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group__0_in_ruleAddition2679 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMultiplication_in_entryRuleMultiplication2706 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMultiplication2713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group__0_in_ruleMultiplication2739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrimary_in_entryRulePrimary2766 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePrimary2773 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Alternatives_in_rulePrimary2799 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryFormula_in_entryRuleLibraryFormula2826 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLibraryFormula2833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryFormula__Group__0_in_ruleLibraryFormula2859 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_entryRulePredicate2886 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePredicate2893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group__0_in_rulePredicate2919 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_entryRuleType2948 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleType2955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Alternatives_in_ruleType2981 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleVariable_in_entryRuleVariable3008 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleVariable3015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Variable__Group__0_in_ruleVariable3041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAssignment_in_entryRuleAssignment3068 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAssignment3075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__Group__0_in_ruleAssignment3101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBeliefUpdate_in_entryRuleBeliefUpdate3128 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBeliefUpdate3135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__Group__0_in_ruleBeliefUpdate3161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBlock_in_entryRuleBlock3188 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBlock3195 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Block__Group__0_in_ruleBlock3221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSynchronizedBlock_in_entryRuleSynchronizedBlock3248 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSynchronizedBlock3255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__0_in_ruleSynchronizedBlock3281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleForEach_in_entryRuleForEach3308 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleForEach3315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__Group__0_in_ruleForEach3341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoalStep_in_entryRuleGoalStep3368 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleGoalStep3375 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__GoalStep__Group__0_in_ruleGoalStep3401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSendMessage_in_entryRuleSendMessage3428 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSendMessage3435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__0_in_ruleSendMessage3461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEISSetup_in_entryRuleEISSetup3488 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEISSetup3495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__0_in_ruleEISSetup3521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEISPerform_in_entryRuleEISPerform3548 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEISPerform3555 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__0_in_ruleEISPerform3581 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIf_in_entryRuleIf3608 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleIf3615 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__0_in_ruleIf3641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryAction_in_entryRuleLibraryAction3668 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLibraryAction3675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryAction__Group__0_in_ruleLibraryAction3701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQuery_in_entryRuleQuery3730 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQuery3737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Query__Group__0_in_ruleQuery3763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTRActive_in_entryRuleTRActive3790 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTRActive3797 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRActive__Group__0_in_ruleTRActive3823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTRControl_in_entryRuleTRControl3850 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTRControl3857 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__Group__0_in_ruleTRControl3883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeStep_in_entryRuleTypeStep3910 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeStep3917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__Group__0_in_ruleTypeStep3943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWait_in_entryRuleWait3970 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWait3977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Wait__Group__0_in_ruleWait4003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWhen_in_entryRuleWhen4030 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWhen4037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__Group__0_in_ruleWhen4063 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWhile_in_entryRuleWhile4090 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleWhile4097 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__0_in_ruleWhile4123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTeleoReactiveRule_in_entryRuleTeleoReactiveRule4150 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTeleoReactiveRule4157 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__Group__0_in_ruleTeleoReactiveRule4183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNumber_in_entryRuleNumber4210 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNumber4217 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Number__Alternatives_in_ruleNumber4243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUnsignedNumber_in_entryRuleUnsignedNumber4270 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUnsignedNumber4277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UnsignedNumber__Alternatives_in_ruleUnsignedNumber4303 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSign_in_entryRuleSign4330 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSign4337 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Sign__Alternatives_in_ruleSign4363 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName4390 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName4397 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName4423 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Astra__Group_0__0_in_rule__Astra__Alternatives4459 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAgentUnitTest_in_rule__Astra__Alternatives4477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestOperation_in_rule__TestStatement__Alternatives_04509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestDefinition_in_rule__TestStatement__Alternatives_04526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentRun_in_rule__TestOperation__Alternatives4558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAssert_in_rule__TestOperation__Alternatives4575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestVerify_in_rule__TestOperation__Alternatives4592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_0__0_in_rule__TestAgentRunItem__Alternatives4624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_1__0_in_rule__TestAgentRunItem__Alternatives4642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestEquals_in_rule__TestAssert__Alternatives4675 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestTrue_in_rule__TestAssert__Alternatives4692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestFalse_in_rule__TestAssert__Alternatives4709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__TestAgentProperity__ProperityAlternatives_2_04742 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__TestAgentProperity__ProperityAlternatives_2_04762 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__TestAgentProperity__ProperityAlternatives_2_04782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestVerify_in_rule__TestCondition__Alternatives4816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentRun_in_rule__TestCondition__Alternatives4833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestBeliefs_in_rule__TestDefinition__Alternatives4865 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestBelief_in_rule__TestDefinition__Alternatives4882 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestPlan_in_rule__TestDefinition__Alternatives4899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestEvent_in_rule__TestDefinition__Alternatives4916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestGoal_in_rule__TestDefinition__Alternatives4933 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestRule_in_rule__TestDefinition__Alternatives4950 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlanStatement_in_rule__AbstractElement__Alternatives4982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRuleStatement_in_rule__AbstractElement__Alternatives4999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInitialStatement_in_rule__AbstractElement__Alternatives5016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTeleoReactiveFunction_in_rule__AbstractElement__Alternatives5033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__InitialStatement__FormulaAlternatives_1_05065 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoal_in_rule__InitialStatement__FormulaAlternatives_1_05082 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__PlanStatement__Alternatives_05115 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__PlanStatement__Alternatives_05135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__RuleStatement__Alternatives_05170 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__RuleStatement__Alternatives_05190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__TeleoReactiveFunction__Alternatives_05225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__TeleoReactiveFunction__Alternatives_05245 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__TeleoReactiveFunction__Alternatives_05265 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Statement__Group_0__0_in_rule__Statement__Alternatives5299 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Statement__Alternatives_1_in_rule__Statement__Alternatives5317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBeliefUpdate_in_rule__Statement__Alternatives_0_05350 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTRControl_in_rule__Statement__Alternatives_0_05367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoalStep_in_rule__Statement__Alternatives_0_05384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSendMessage_in_rule__Statement__Alternatives_0_05401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAssignment_in_rule__Statement__Alternatives_0_05418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryAction_in_rule__Statement__Alternatives_0_05435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeStep_in_rule__Statement__Alternatives_0_05452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__Statement__Alternatives_0_05469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQuery_in_rule__Statement__Alternatives_0_05486 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWait_in_rule__Statement__Alternatives_0_05503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEISSetup_in_rule__Statement__Alternatives_0_05520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEISPerform_in_rule__Statement__Alternatives_0_05537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBlock_in_rule__Statement__Alternatives_15569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWhile_in_rule__Statement__Alternatives_15586 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleWhen_in_rule__Statement__Alternatives_15603 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleForEach_in_rule__Statement__Alternatives_15620 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSynchronizedBlock_in_rule__Statement__Alternatives_15637 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIf_in_rule__Statement__Alternatives_15654 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComparison_in_rule__Formula__Alternatives5686 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryFormula_in_rule__Formula__Alternatives5703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNOT_in_rule__Formula__Alternatives5720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTRActive_in_rule__Formula__Alternatives5737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Comparison__OperationAlternatives_1_05770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Comparison__OperationAlternatives_1_05790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Comparison__OperationAlternatives_1_05810 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Comparison__OperationAlternatives_1_05830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Comparison__OperationAlternatives_1_05850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Comparison__OperationAlternatives_1_05870 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMentalEvent_in_rule__Event__Alternatives5904 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMessageEvent_in_rule__Event__Alternatives5921 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__MentalEvent__TypeAlternatives_0_05954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__MentalEvent__TypeAlternatives_0_05974 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFormula_in_rule__MentalEvent__FormulaAlternatives_1_06008 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoal_in_rule__MentalEvent__FormulaAlternatives_1_06025 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Addition__OperationAlternatives_1_1_06058 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Addition__OperationAlternatives_1_1_06078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Multiplication__OperationAlternatives_1_1_06113 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Multiplication__OperationAlternatives_1_1_06133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Multiplication__OperationAlternatives_1_1_06153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_0__0_in_rule__Primary__Alternatives6187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_1__0_in_rule__Primary__Alternatives6205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_2__0_in_rule__Primary__Alternatives6223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_3__0_in_rule__Primary__Alternatives6241 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_4__0_in_rule__Primary__Alternatives6259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_5__0_in_rule__Primary__Alternatives6277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_6__0_in_rule__Primary__Alternatives6295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_7__0_in_rule__Primary__Alternatives6313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_0__0_in_rule__Type__Alternatives6347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_1__0_in_rule__Type__Alternatives6365 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_2__0_in_rule__Type__Alternatives6383 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_3__0_in_rule__Type__Alternatives6401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_4__0_in_rule__Type__Alternatives6419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_5__0_in_rule__Type__Alternatives6437 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_6__0_in_rule__Type__Alternatives6455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_7__0_in_rule__Type__Alternatives6473 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8__0_in_rule__Type__Alternatives6491 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__Assignment__ValueAlternatives_2_06524 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleListConstructor_in_rule__Assignment__ValueAlternatives_2_06541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__BeliefUpdate__TypeAlternatives_0_06574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__BeliefUpdate__TypeAlternatives_0_06594 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__EISSetup__IdAlternatives_2_06628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INTEGER_in_rule__EISSetup__IdAlternatives_2_06645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__EISSetup__JarAlternatives_3_1_06677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INTEGER_in_rule__EISSetup__JarAlternatives_3_1_06694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__TRControl__ModeAlternatives_0_06727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__TRControl__ModeAlternatives_0_06747 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__TypeStep__ValueAlternatives_1_1_06781 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleListConstructor_in_rule__TypeStep__ValueAlternatives_1_1_06798 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryAction_in_rule__TeleoReactiveRule__OperationAlternatives_2_06830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TeleoReactiveRule__OperationAlternatives_2_06847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUnsignedNumber_in_rule__Number__Alternatives6879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Number__Group_1__0_in_rule__Number__Alternatives6896 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_LONG_in_rule__UnsignedNumber__Alternatives6929 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INTEGER_in_rule__UnsignedNumber__Alternatives6946 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_FLOAT_in_rule__UnsignedNumber__Alternatives6963 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_DOUBLE_in_rule__UnsignedNumber__Alternatives6980 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Sign__Alternatives7013 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Sign__Alternatives7033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Astra__Group_0__0__Impl_in_rule__Astra__Group_0__07065 = new BitSet(new long[]{0x0400000000080000L});
    public static final BitSet FOLLOW_rule__Astra__Group_0__1_in_rule__Astra__Group_0__07068 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Astra__LibrarysAssignment_0_0_in_rule__Astra__Group_0__0__Impl7095 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Astra__Group_0__1__Impl_in_rule__Astra__Group_0__17126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Astra__AgentAssignment_0_1_in_rule__Astra__Group_0__1__Impl7153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__0__Impl_in_rule__AgentUnitTest__Group__07187 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__1_in_rule__AgentUnitTest__Group__07190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__AgentUnitTest__Group__0__Impl7218 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__1__Impl_in_rule__AgentUnitTest__Group__17249 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__2_in_rule__AgentUnitTest__Group__17252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__NameAssignment_1_in_rule__AgentUnitTest__Group__1__Impl7279 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__2__Impl_in_rule__AgentUnitTest__Group__27309 = new BitSet(new long[]{0x000000B000000000L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__3_in_rule__AgentUnitTest__Group__27312 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__AgentUnitTest__Group__2__Impl7340 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__3__Impl_in_rule__AgentUnitTest__Group__37371 = new BitSet(new long[]{0x000000B000000000L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__4_in_rule__AgentUnitTest__Group__37374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__TestAgentAssignment_3_in_rule__AgentUnitTest__Group__3__Impl7401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__4__Impl_in_rule__AgentUnitTest__Group__47432 = new BitSet(new long[]{0x000000B000000000L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__5_in_rule__AgentUnitTest__Group__47435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__TestCasesAssignment_4_in_rule__AgentUnitTest__Group__4__Impl7462 = new BitSet(new long[]{0x0000008000000002L});
    public static final BitSet FOLLOW_rule__AgentUnitTest__Group__5__Impl_in_rule__AgentUnitTest__Group__57493 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__AgentUnitTest__Group__5__Impl7521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgent__Group__0__Impl_in_rule__TestAgent__Group__07564 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestAgent__Group__1_in_rule__TestAgent__Group__07567 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__TestAgent__Group__0__Impl7595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgent__Group__1__Impl_in_rule__TestAgent__Group__17626 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__TestAgent__Group__2_in_rule__TestAgent__Group__17629 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgent__NameAssignment_1_in_rule__TestAgent__Group__1__Impl7656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgent__Group__2__Impl_in_rule__TestAgent__Group__27686 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__TestAgent__Group__2__Impl7714 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__Group__0__Impl_in_rule__TestCase__Group__07751 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestCase__Group__1_in_rule__TestCase__Group__07754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__TestCase__Group__0__Impl7782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__Group__1__Impl_in_rule__TestCase__Group__17813 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__TestCase__Group__2_in_rule__TestCase__Group__17816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__NameAssignment_1_in_rule__TestCase__Group__1__Impl7843 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__Group__2__Impl_in_rule__TestCase__Group__27873 = new BitSet(new long[]{0x01F2D01000000200L});
    public static final BitSet FOLLOW_rule__TestCase__Group__3_in_rule__TestCase__Group__27876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__TestCase__Group__2__Impl7904 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__Group__3__Impl_in_rule__TestCase__Group__37935 = new BitSet(new long[]{0x01F2D01000000200L});
    public static final BitSet FOLLOW_rule__TestCase__Group__4_in_rule__TestCase__Group__37938 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestCase__TestStatementsAssignment_3_in_rule__TestCase__Group__3__Impl7965 = new BitSet(new long[]{0x01F2D00000000202L});
    public static final BitSet FOLLOW_rule__TestCase__Group__4__Impl_in_rule__TestCase__Group__47996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__TestCase__Group__4__Impl8024 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestStatement__Group__0__Impl_in_rule__TestStatement__Group__08065 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__TestStatement__Group__1_in_rule__TestStatement__Group__08068 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestStatement__Alternatives_0_in_rule__TestStatement__Group__0__Impl8095 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestStatement__Group__1__Impl_in_rule__TestStatement__Group__18125 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__TestStatement__Group__1__Impl8153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__0__Impl_in_rule__TestAgentRun__Group__08188 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__1_in_rule__TestAgentRun__Group__08191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__AgentAssignment_0_in_rule__TestAgentRun__Group__0__Impl8218 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__1__Impl_in_rule__TestAgentRun__Group__18248 = new BitSet(new long[]{0x0000020000000000L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__2_in_rule__TestAgentRun__Group__18251 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__TestAgentRun__Group__1__Impl8279 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__2__Impl_in_rule__TestAgentRun__Group__28310 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__3_in_rule__TestAgentRun__Group__28313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__TestAgentRun__Group__2__Impl8341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group__3__Impl_in_rule__TestAgentRun__Group__38372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group_3__0_in_rule__TestAgentRun__Group__3__Impl8399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group_3__0__Impl_in_rule__TestAgentRun__Group_3__08438 = new BitSet(new long[]{0x0000000000000220L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group_3__1_in_rule__TestAgentRun__Group_3__08441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TestAgentRun__Group_3__0__Impl8469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group_3__1__Impl_in_rule__TestAgentRun__Group_3__18500 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group_3__2_in_rule__TestAgentRun__Group_3__18503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__ItemAssignment_3_1_in_rule__TestAgentRun__Group_3__1__Impl8530 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRun__Group_3__2__Impl_in_rule__TestAgentRun__Group_3__28560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TestAgentRun__Group_3__2__Impl8588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_0__0__Impl_in_rule__TestAgentRunItem__Group_0__08625 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_0__1_in_rule__TestAgentRunItem__Group_0__08628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_0__1__Impl_in_rule__TestAgentRunItem__Group_0__18686 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__ValueAssignment_0_1_in_rule__TestAgentRunItem__Group_0__1__Impl8713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_1__0__Impl_in_rule__TestAgentRunItem__Group_1__08747 = new BitSet(new long[]{0x0000000000000220L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_1__1_in_rule__TestAgentRunItem__Group_1__08750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__Group_1__1__Impl_in_rule__TestAgentRunItem__Group_1__18808 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentRunItem__ValueAssignment_1_1_in_rule__TestAgentRunItem__Group_1__1__Impl8835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__0__Impl_in_rule__TestEquals__Group__08869 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__1_in_rule__TestEquals__Group__08872 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_rule__TestEquals__Group__0__Impl8900 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__1__Impl_in_rule__TestEquals__Group__18931 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__2_in_rule__TestEquals__Group__18934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TestEquals__Group__1__Impl8962 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__2__Impl_in_rule__TestEquals__Group__28993 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__3_in_rule__TestEquals__Group__28996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__ErrorAssignment_2_in_rule__TestEquals__Group__2__Impl9023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__3__Impl_in_rule__TestEquals__Group__39053 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__4_in_rule__TestEquals__Group__39056 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__TestEquals__Group__3__Impl9084 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__4__Impl_in_rule__TestEquals__Group__49115 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__5_in_rule__TestEquals__Group__49118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__ExpectedsAssignment_4_in_rule__TestEquals__Group__4__Impl9145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__5__Impl_in_rule__TestEquals__Group__59175 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__6_in_rule__TestEquals__Group__59178 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__TestEquals__Group__5__Impl9206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__6__Impl_in_rule__TestEquals__Group__69237 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__7_in_rule__TestEquals__Group__69240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__ActualsAssignment_6_in_rule__TestEquals__Group__6__Impl9267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEquals__Group__7__Impl_in_rule__TestEquals__Group__79297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TestEquals__Group__7__Impl9325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__Group__0__Impl_in_rule__TestAgentProperity__Group__09372 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__Group__1_in_rule__TestAgentProperity__Group__09375 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__AgentAssignment_0_in_rule__TestAgentProperity__Group__0__Impl9402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__Group__1__Impl_in_rule__TestAgentProperity__Group__19432 = new BitSet(new long[]{0x000000000000E000L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__Group__2_in_rule__TestAgentProperity__Group__19435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__TestAgentProperity__Group__1__Impl9463 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__Group__2__Impl_in_rule__TestAgentProperity__Group__29494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__ProperityAssignment_2_in_rule__TestAgentProperity__Group__2__Impl9521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__0__Impl_in_rule__TestTrue__Group__09557 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__1_in_rule__TestTrue__Group__09560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_rule__TestTrue__Group__0__Impl9588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__1__Impl_in_rule__TestTrue__Group__19619 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__2_in_rule__TestTrue__Group__19622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TestTrue__Group__1__Impl9650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__2__Impl_in_rule__TestTrue__Group__29681 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__3_in_rule__TestTrue__Group__29684 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__ErrorAssignment_2_in_rule__TestTrue__Group__2__Impl9711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__3__Impl_in_rule__TestTrue__Group__39741 = new BitSet(new long[]{0x0000D00000000200L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__4_in_rule__TestTrue__Group__39744 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__TestTrue__Group__3__Impl9772 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__4__Impl_in_rule__TestTrue__Group__49803 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__5_in_rule__TestTrue__Group__49806 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__ConditionAssignment_4_in_rule__TestTrue__Group__4__Impl9833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestTrue__Group__5__Impl_in_rule__TestTrue__Group__59863 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TestTrue__Group__5__Impl9891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__0__Impl_in_rule__TestFalse__Group__09934 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__1_in_rule__TestFalse__Group__09937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_rule__TestFalse__Group__0__Impl9965 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__1__Impl_in_rule__TestFalse__Group__19996 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__2_in_rule__TestFalse__Group__19999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TestFalse__Group__1__Impl10027 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__2__Impl_in_rule__TestFalse__Group__210058 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__3_in_rule__TestFalse__Group__210061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__ErrorAssignment_2_in_rule__TestFalse__Group__2__Impl10088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__3__Impl_in_rule__TestFalse__Group__310118 = new BitSet(new long[]{0x0000D00000000200L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__4_in_rule__TestFalse__Group__310121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__TestFalse__Group__3__Impl10149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__4__Impl_in_rule__TestFalse__Group__410180 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__5_in_rule__TestFalse__Group__410183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__ConditionAssignment_4_in_rule__TestFalse__Group__4__Impl10210 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestFalse__Group__5__Impl_in_rule__TestFalse__Group__510240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TestFalse__Group__5__Impl10268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__0__Impl_in_rule__TestVerify__Group__010311 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__1_in_rule__TestVerify__Group__010314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__AgentAssignment_0_in_rule__TestVerify__Group__0__Impl10341 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__1__Impl_in_rule__TestVerify__Group__110371 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__2_in_rule__TestVerify__Group__110374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__TestVerify__Group__1__Impl10402 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__2__Impl_in_rule__TestVerify__Group__210433 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__3_in_rule__TestVerify__Group__210436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_rule__TestVerify__Group__2__Impl10464 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__3__Impl_in_rule__TestVerify__Group__310495 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__4_in_rule__TestVerify__Group__310498 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TestVerify__Group__3__Impl10526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__4__Impl_in_rule__TestVerify__Group__410557 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__5_in_rule__TestVerify__Group__410560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__ItemAssignment_4_in_rule__TestVerify__Group__4__Impl10587 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestVerify__Group__5__Impl_in_rule__TestVerify__Group__510617 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TestVerify__Group__5__Impl10645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__0__Impl_in_rule__TestBeliefs__Group__010688 = new BitSet(new long[]{0x0002000000000000L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__1_in_rule__TestBeliefs__Group__010691 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__1__Impl_in_rule__TestBeliefs__Group__110749 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__2_in_rule__TestBeliefs__Group__110752 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_rule__TestBeliefs__Group__1__Impl10780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__2__Impl_in_rule__TestBeliefs__Group__210811 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__3_in_rule__TestBeliefs__Group__210814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__NameAssignment_2_in_rule__TestBeliefs__Group__2__Impl10841 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group__3__Impl_in_rule__TestBeliefs__Group__310871 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3__0_in_rule__TestBeliefs__Group__3__Impl10898 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3__0__Impl_in_rule__TestBeliefs__Group_3__010936 = new BitSet(new long[]{0x0008000000000200L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3__1_in_rule__TestBeliefs__Group_3__010939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__TestBeliefs__Group_3__0__Impl10967 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3__1__Impl_in_rule__TestBeliefs__Group_3__110998 = new BitSet(new long[]{0x0008000000000200L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3__2_in_rule__TestBeliefs__Group_3__111001 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1__0_in_rule__TestBeliefs__Group_3__1__Impl11028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3__2__Impl_in_rule__TestBeliefs__Group_3__211059 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__TestBeliefs__Group_3__2__Impl11087 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1__0__Impl_in_rule__TestBeliefs__Group_3_1__011124 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1__1_in_rule__TestBeliefs__Group_3_1__011127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__BeliefsAssignment_3_1_0_in_rule__TestBeliefs__Group_3_1__0__Impl11154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1__1__Impl_in_rule__TestBeliefs__Group_3_1__111184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1_1__0_in_rule__TestBeliefs__Group_3_1__1__Impl11211 = new BitSet(new long[]{0x0000200000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1_1__0__Impl_in_rule__TestBeliefs__Group_3_1_1__011246 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1_1__1_in_rule__TestBeliefs__Group_3_1_1__011249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__TestBeliefs__Group_3_1_1__0__Impl11277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__Group_3_1_1__1__Impl_in_rule__TestBeliefs__Group_3_1_1__111308 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBeliefs__BeliefsAssignment_3_1_1_1_in_rule__TestBeliefs__Group_3_1_1__1__Impl11335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBelief__Group__0__Impl_in_rule__TestBelief__Group__011369 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestBelief__Group__1_in_rule__TestBelief__Group__011372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_rule__TestBelief__Group__0__Impl11400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBelief__Group__1__Impl_in_rule__TestBelief__Group__111431 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestBelief__Group__2_in_rule__TestBelief__Group__111434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBelief__NameAssignment_1_in_rule__TestBelief__Group__1__Impl11461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBelief__Group__2__Impl_in_rule__TestBelief__Group__211491 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestBelief__BeliefAssignment_2_in_rule__TestBelief__Group__2__Impl11518 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestPlan__Group__0__Impl_in_rule__TestPlan__Group__011554 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestPlan__Group__1_in_rule__TestPlan__Group__011557 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_rule__TestPlan__Group__0__Impl11585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestPlan__Group__1__Impl_in_rule__TestPlan__Group__111616 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestPlan__Group__2_in_rule__TestPlan__Group__111619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestPlan__NameAssignment_1_in_rule__TestPlan__Group__1__Impl11646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestPlan__Group__2__Impl_in_rule__TestPlan__Group__211676 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestPlan__PlanAssignment_2_in_rule__TestPlan__Group__2__Impl11703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEvent__Group__0__Impl_in_rule__TestEvent__Group__011739 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestEvent__Group__1_in_rule__TestEvent__Group__011742 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_rule__TestEvent__Group__0__Impl11770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEvent__Group__1__Impl_in_rule__TestEvent__Group__111801 = new BitSet(new long[]{0x0000000018000000L});
    public static final BitSet FOLLOW_rule__TestEvent__Group__2_in_rule__TestEvent__Group__111804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEvent__NameAssignment_1_in_rule__TestEvent__Group__1__Impl11831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEvent__Group__2__Impl_in_rule__TestEvent__Group__211861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestEvent__EventAssignment_2_in_rule__TestEvent__Group__2__Impl11888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestGoal__Group__0__Impl_in_rule__TestGoal__Group__011924 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestGoal__Group__1_in_rule__TestGoal__Group__011927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_rule__TestGoal__Group__0__Impl11955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestGoal__Group__1__Impl_in_rule__TestGoal__Group__111986 = new BitSet(new long[]{0x2000000000000000L});
    public static final BitSet FOLLOW_rule__TestGoal__Group__2_in_rule__TestGoal__Group__111989 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestGoal__NameAssignment_1_in_rule__TestGoal__Group__1__Impl12016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestGoal__Group__2__Impl_in_rule__TestGoal__Group__212046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestGoal__GoalAssignment_2_in_rule__TestGoal__Group__2__Impl12073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group__0__Impl_in_rule__TestRule__Group__012109 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TestRule__Group__1_in_rule__TestRule__Group__012112 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_rule__TestRule__Group__0__Impl12140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group__1__Impl_in_rule__TestRule__Group__112171 = new BitSet(new long[]{0x0000000018000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_rule__TestRule__Group__2_in_rule__TestRule__Group__112174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__NameAssignment_1_in_rule__TestRule__Group__1__Impl12201 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group__2__Impl_in_rule__TestRule__Group__212231 = new BitSet(new long[]{0x0200000000000000L});
    public static final BitSet FOLLOW_rule__TestRule__Group__3_in_rule__TestRule__Group__212234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__EventAssignment_2_in_rule__TestRule__Group__2__Impl12261 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group__3__Impl_in_rule__TestRule__Group__312291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group_3__0_in_rule__TestRule__Group__3__Impl12318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group_3__0__Impl_in_rule__TestRule__Group_3__012357 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__TestRule__Group_3__1_in_rule__TestRule__Group_3__012360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_rule__TestRule__Group_3__0__Impl12388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__Group_3__1__Impl_in_rule__TestRule__Group_3__112419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestRule__ContextAssignment_3_1_in_rule__TestRule__Group_3__1__Impl12446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__0__Impl_in_rule__Agent__Group__012480 = new BitSet(new long[]{0x0400000000080000L});
    public static final BitSet FOLLOW_rule__Agent__Group__1_in_rule__Agent__Group__012483 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Agent__Group__0__Impl12512 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__1__Impl_in_rule__Agent__Group__112545 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Agent__Group__2_in_rule__Agent__Group__112548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rule__Agent__Group__1__Impl12576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__2__Impl_in_rule__Agent__Group__212607 = new BitSet(new long[]{0x0800000800000000L});
    public static final BitSet FOLLOW_rule__Agent__Group__3_in_rule__Agent__Group__212610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__NameAssignment_2_in_rule__Agent__Group__2__Impl12637 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__3__Impl_in_rule__Agent__Group__312667 = new BitSet(new long[]{0x0800000800000000L});
    public static final BitSet FOLLOW_rule__Agent__Group__4_in_rule__Agent__Group__312670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3__0_in_rule__Agent__Group__3__Impl12697 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__4__Impl_in_rule__Agent__Group__412728 = new BitSet(new long[]{0x51200010001F0000L});
    public static final BitSet FOLLOW_rule__Agent__Group__5_in_rule__Agent__Group__412731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Agent__Group__4__Impl12759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group__5__Impl_in_rule__Agent__Group__512790 = new BitSet(new long[]{0x51200010001F0000L});
    public static final BitSet FOLLOW_rule__Agent__Group__6_in_rule__Agent__Group__512793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__ElementsAssignment_5_in_rule__Agent__Group__5__Impl12820 = new BitSet(new long[]{0x51200000001F0002L});
    public static final BitSet FOLLOW_rule__Agent__Group__6__Impl_in_rule__Agent__Group__612851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Agent__Group__6__Impl12879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3__0__Impl_in_rule__Agent__Group_3__012924 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Agent__Group_3__1_in_rule__Agent__Group_3__012927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_rule__Agent__Group_3__0__Impl12955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3__1__Impl_in_rule__Agent__Group_3__112986 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__Agent__Group_3__2_in_rule__Agent__Group_3__112989 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__SuperTypesAssignment_3_1_in_rule__Agent__Group_3__1__Impl13016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3__2__Impl_in_rule__Agent__Group_3__213046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3_2__0_in_rule__Agent__Group_3__2__Impl13073 = new BitSet(new long[]{0x0000200000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3_2__0__Impl_in_rule__Agent__Group_3_2__013110 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Agent__Group_3_2__1_in_rule__Agent__Group_3_2__013113 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__Agent__Group_3_2__0__Impl13141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__Group_3_2__1__Impl_in_rule__Agent__Group_3_2__113172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Agent__SuperTypesAssignment_3_2_1_in_rule__Agent__Group_3_2__1__Impl13199 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InitialStatement__Group__0__Impl_in_rule__InitialStatement__Group__013233 = new BitSet(new long[]{0x2000000000000200L});
    public static final BitSet FOLLOW_rule__InitialStatement__Group__1_in_rule__InitialStatement__Group__013236 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_rule__InitialStatement__Group__0__Impl13264 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InitialStatement__Group__1__Impl_in_rule__InitialStatement__Group__113295 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__InitialStatement__Group__2_in_rule__InitialStatement__Group__113298 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InitialStatement__FormulaAssignment_1_in_rule__InitialStatement__Group__1__Impl13325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InitialStatement__Group__2__Impl_in_rule__InitialStatement__Group__213355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__InitialStatement__Group__2__Impl13383 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Goal__Group__0__Impl_in_rule__Goal__Group__013420 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Goal__Group__1_in_rule__Goal__Group__013423 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_rule__Goal__Group__0__Impl13451 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Goal__Group__1__Impl_in_rule__Goal__Group__113482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Goal__PredicateAssignment_1_in_rule__Goal__Group__1__Impl13509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__0__Impl_in_rule__PlanStatement__Group__013543 = new BitSet(new long[]{0x0020000000030000L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__1_in_rule__PlanStatement__Group__013546 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__Alternatives_0_in_rule__PlanStatement__Group__0__Impl13573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__1__Impl_in_rule__PlanStatement__Group__113604 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__2_in_rule__PlanStatement__Group__113607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_rule__PlanStatement__Group__1__Impl13635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__2__Impl_in_rule__PlanStatement__Group__213666 = new BitSet(new long[]{0x2000000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__3_in_rule__PlanStatement__Group__213669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__IdentfierAssignment_2_in_rule__PlanStatement__Group__2__Impl13696 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__Group__3__Impl_in_rule__PlanStatement__Group__313726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PlanStatement__PlanAssignment_3_in_rule__PlanStatement__Group__3__Impl13753 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__0__Impl_in_rule__RuleStatement__Group__013791 = new BitSet(new long[]{0x0100000000030000L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__1_in_rule__RuleStatement__Group__013794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Alternatives_0_in_rule__RuleStatement__Group__0__Impl13821 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__1__Impl_in_rule__RuleStatement__Group__113852 = new BitSet(new long[]{0x0000000018000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__2_in_rule__RuleStatement__Group__113855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_rule__RuleStatement__Group__1__Impl13883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__2__Impl_in_rule__RuleStatement__Group__213914 = new BitSet(new long[]{0x2200000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__3_in_rule__RuleStatement__Group__213917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__EventAssignment_2_in_rule__RuleStatement__Group__2__Impl13944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__3__Impl_in_rule__RuleStatement__Group__313974 = new BitSet(new long[]{0x2200000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__4_in_rule__RuleStatement__Group__313977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group_3__0_in_rule__RuleStatement__Group__3__Impl14004 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group__4__Impl_in_rule__RuleStatement__Group__414035 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__PlanAssignment_4_in_rule__RuleStatement__Group__4__Impl14062 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group_3__0__Impl_in_rule__RuleStatement__Group_3__014102 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__RuleStatement__Group_3__1_in_rule__RuleStatement__Group_3__014105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_rule__RuleStatement__Group_3__0__Impl14133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__Group_3__1__Impl_in_rule__RuleStatement__Group_3__114164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__RuleStatement__ContextAssignment_3_1_in_rule__RuleStatement__Group_3__1__Impl14191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__0__Impl_in_rule__TeleoReactiveFunction__Group__014225 = new BitSet(new long[]{0x51200000001F0000L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__1_in_rule__TeleoReactiveFunction__Group__014228 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Alternatives_0_in_rule__TeleoReactiveFunction__Group__0__Impl14255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__1__Impl_in_rule__TeleoReactiveFunction__Group__114286 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__2_in_rule__TeleoReactiveFunction__Group__114289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_62_in_rule__TeleoReactiveFunction__Group__1__Impl14317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__2__Impl_in_rule__TeleoReactiveFunction__Group__214348 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__3_in_rule__TeleoReactiveFunction__Group__214351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__IdentifierAssignment_2_in_rule__TeleoReactiveFunction__Group__2__Impl14378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group__3__Impl_in_rule__TeleoReactiveFunction__Group__314408 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group_3__0_in_rule__TeleoReactiveFunction__Group__3__Impl14435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group_3__0__Impl_in_rule__TeleoReactiveFunction__Group_3__014474 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group_3__1_in_rule__TeleoReactiveFunction__Group_3__014477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__TeleoReactiveFunction__Group_3__0__Impl14505 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group_3__1__Impl_in_rule__TeleoReactiveFunction__Group_3__114536 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group_3__2_in_rule__TeleoReactiveFunction__Group_3__114539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__RulesAssignment_3_1_in_rule__TeleoReactiveFunction__Group_3__1__Impl14568 = new BitSet(new long[]{0x00040400180003F2L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__RulesAssignment_3_1_in_rule__TeleoReactiveFunction__Group_3__1__Impl14580 = new BitSet(new long[]{0x00040400180003F2L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__TeleoReactiveFunction__Group_3__2__Impl_in_rule__TeleoReactiveFunction__Group_3__214613 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__TeleoReactiveFunction__Group_3__2__Impl14641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Statement__Group_0__0__Impl_in_rule__Statement__Group_0__014678 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__Statement__Group_0__1_in_rule__Statement__Group_0__014681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Statement__Alternatives_0_0_in_rule__Statement__Group_0__0__Impl14708 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Statement__Group_0__1__Impl_in_rule__Statement__Group_0__114738 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Statement__Group_0__1__Impl14766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__Group__0__Impl_in_rule__AND__Group__014801 = new BitSet(new long[]{0x8000000000000000L});
    public static final BitSet FOLLOW_rule__AND__Group__1_in_rule__AND__Group__014804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__FormulasAssignment_0_in_rule__AND__Group__0__Impl14831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__Group__1__Impl_in_rule__AND__Group__114861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__Group_1__0_in_rule__AND__Group__1__Impl14888 = new BitSet(new long[]{0x8000000000000002L});
    public static final BitSet FOLLOW_rule__AND__Group_1__0__Impl_in_rule__AND__Group_1__014923 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__AND__Group_1__1_in_rule__AND__Group_1__014926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_rule__AND__Group_1__0__Impl14955 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__Group_1__1__Impl_in_rule__AND__Group_1__114987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AND__FormulasAssignment_1_1_in_rule__AND__Group_1__1__Impl15014 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__Group__0__Impl_in_rule__Comparison__Group__015048 = new BitSet(new long[]{0x0000000007E00000L});
    public static final BitSet FOLLOW_rule__Comparison__Group__1_in_rule__Comparison__Group__015051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__LeftAssignment_0_in_rule__Comparison__Group__0__Impl15078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__Group__1__Impl_in_rule__Comparison__Group__115108 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Comparison__Group__2_in_rule__Comparison__Group__115111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__OperationAssignment_1_in_rule__Comparison__Group__1__Impl15138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__Group__2__Impl_in_rule__Comparison__Group__215168 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__RightAssignment_2_in_rule__Comparison__Group__2__Impl15195 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__Group__0__Impl_in_rule__MentalEvent__Group__015231 = new BitSet(new long[]{0x20040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__MentalEvent__Group__1_in_rule__MentalEvent__Group__015234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__TypeAssignment_0_in_rule__MentalEvent__Group__0__Impl15261 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__Group__1__Impl_in_rule__MentalEvent__Group__115291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__FormulaAssignment_1_in_rule__MentalEvent__Group__1__Impl15318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__0__Impl_in_rule__MessageEvent__Group__015352 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__1_in_rule__MessageEvent__Group__015355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_64_in_rule__MessageEvent__Group__0__Impl15383 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__1__Impl_in_rule__MessageEvent__Group__115414 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__2_in_rule__MessageEvent__Group__115417 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__MessageEvent__Group__1__Impl15445 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__2__Impl_in_rule__MessageEvent__Group__215476 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__3_in_rule__MessageEvent__Group__215479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__PerformativeAssignment_2_in_rule__MessageEvent__Group__2__Impl15506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__3__Impl_in_rule__MessageEvent__Group__315536 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__4_in_rule__MessageEvent__Group__315539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__MessageEvent__Group__3__Impl15567 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__4__Impl_in_rule__MessageEvent__Group__415598 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__5_in_rule__MessageEvent__Group__415601 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__SenderAssignment_4_in_rule__MessageEvent__Group__4__Impl15628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__5__Impl_in_rule__MessageEvent__Group__515658 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__6_in_rule__MessageEvent__Group__515661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__MessageEvent__Group__5__Impl15689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__6__Impl_in_rule__MessageEvent__Group__615720 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__7_in_rule__MessageEvent__Group__615723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__ContentAssignment_6_in_rule__MessageEvent__Group__6__Impl15750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MessageEvent__Group__7__Impl_in_rule__MessageEvent__Group__715780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__MessageEvent__Group__7__Impl15808 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Library__Group__0__Impl_in_rule__Library__Group__015855 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Library__Group__1_in_rule__Library__Group__015858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_65_in_rule__Library__Group__0__Impl15886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Library__Group__1__Impl_in_rule__Library__Group__115917 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_rule__Library__Group__2_in_rule__Library__Group__115920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Library__ClazzAssignment_1_in_rule__Library__Group__1__Impl15947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Library__Group__2__Impl_in_rule__Library__Group__215977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Library__Group__2__Impl16005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryTerm__Group__0__Impl_in_rule__LibraryTerm__Group__016042 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__LibraryTerm__Group__1_in_rule__LibraryTerm__Group__016045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryTerm__ModuleAssignment_0_in_rule__LibraryTerm__Group__0__Impl16072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryTerm__Group__1__Impl_in_rule__LibraryTerm__Group__116102 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__LibraryTerm__Group__2_in_rule__LibraryTerm__Group__116105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__LibraryTerm__Group__1__Impl16133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryTerm__Group__2__Impl_in_rule__LibraryTerm__Group__216164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryTerm__ActionAssignment_2_in_rule__LibraryTerm__Group__2__Impl16191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Count__Group__0__Impl_in_rule__Count__Group__016227 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__Count__Group__1_in_rule__Count__Group__016230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_66_in_rule__Count__Group__0__Impl16258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Count__Group__1__Impl_in_rule__Count__Group__116289 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__Count__Group__2_in_rule__Count__Group__116292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Count__Group__1__Impl16320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Count__Group__2__Impl_in_rule__Count__Group__216351 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__Count__Group__3_in_rule__Count__Group__216354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Count__PredicateAssignment_2_in_rule__Count__Group__2__Impl16381 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Count__Group__3__Impl_in_rule__Count__Group__316411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__Count__Group__3__Impl16439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group__0__Impl_in_rule__List__Group__016478 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__List__Group__1_in_rule__List__Group__016481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group__1__Impl_in_rule__List__Group__116539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1__0_in_rule__List__Group__1__Impl16566 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1__0__Impl_in_rule__List__Group_1__016600 = new BitSet(new long[]{0x000C0400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__List__Group_1__1_in_rule__List__Group_1__016603 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_rule__List__Group_1__0__Impl16631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1__1__Impl_in_rule__List__Group_1__116662 = new BitSet(new long[]{0x000C0400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__List__Group_1__2_in_rule__List__Group_1__116665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1_1__0_in_rule__List__Group_1__1__Impl16692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1__2__Impl_in_rule__List__Group_1__216723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_rule__List__Group_1__2__Impl16751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1_1__0__Impl_in_rule__List__Group_1_1__016788 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__List__Group_1_1__1_in_rule__List__Group_1_1__016791 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__TermsAssignment_1_1_0_in_rule__List__Group_1_1__0__Impl16818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1_1__1__Impl_in_rule__List__Group_1_1__116848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1_1_1__0_in_rule__List__Group_1_1__1__Impl16875 = new BitSet(new long[]{0x0000200000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1_1_1__0__Impl_in_rule__List__Group_1_1_1__016910 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__List__Group_1_1_1__1_in_rule__List__Group_1_1_1__016913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__List__Group_1_1_1__0__Impl16941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__Group_1_1_1__1__Impl_in_rule__List__Group_1_1_1__116972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__List__TermsAssignment_1_1_1_1_in_rule__List__Group_1_1_1__1__Impl16999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__0__Impl_in_rule__ListConstructor__Group__017033 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__1_in_rule__ListConstructor__Group__017036 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_67_in_rule__ListConstructor__Group__0__Impl17064 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__1__Impl_in_rule__ListConstructor__Group__117095 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__2_in_rule__ListConstructor__Group__117098 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__ListConstructor__Group__1__Impl17126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__2__Impl_in_rule__ListConstructor__Group__217157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__3_in_rule__ListConstructor__Group__217160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__ContextAssignment_2_in_rule__ListConstructor__Group__2__Impl17187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__3__Impl_in_rule__ListConstructor__Group__317217 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__4_in_rule__ListConstructor__Group__317220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_68_in_rule__ListConstructor__Group__3__Impl17248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__4__Impl_in_rule__ListConstructor__Group__417279 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__5_in_rule__ListConstructor__Group__417282 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__GuardAssignment_4_in_rule__ListConstructor__Group__4__Impl17309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ListConstructor__Group__5__Impl_in_rule__ListConstructor__Group__517339 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__ListConstructor__Group__5__Impl17367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NOT__Group__0__Impl_in_rule__NOT__Group__017410 = new BitSet(new long[]{0x0000000000000200L,0x0000000000100000L});
    public static final BitSet FOLLOW_rule__NOT__Group__1_in_rule__NOT__Group__017413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NOT__OpAssignment_0_in_rule__NOT__Group__0__Impl17440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NOT__Group__1__Impl_in_rule__NOT__Group__117471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__NOT__FormulaAssignment_1_in_rule__NOT__Group__1__Impl17498 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group__0__Impl_in_rule__Addition__Group__017532 = new BitSet(new long[]{0x0000000018000000L});
    public static final BitSet FOLLOW_rule__Addition__Group__1_in_rule__Addition__Group__017535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMultiplication_in_rule__Addition__Group__0__Impl17562 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group__1__Impl_in_rule__Addition__Group__117591 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group_1__0_in_rule__Addition__Group__1__Impl17618 = new BitSet(new long[]{0x0000000018000002L});
    public static final BitSet FOLLOW_rule__Addition__Group_1__0__Impl_in_rule__Addition__Group_1__017653 = new BitSet(new long[]{0x0000000018000000L});
    public static final BitSet FOLLOW_rule__Addition__Group_1__1_in_rule__Addition__Group_1__017656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group_1__1__Impl_in_rule__Addition__Group_1__117714 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Addition__Group_1__2_in_rule__Addition__Group_1__117717 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__OperationAssignment_1_1_in_rule__Addition__Group_1__1__Impl17744 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group_1__2__Impl_in_rule__Addition__Group_1__217774 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__RightAssignment_1_2_in_rule__Addition__Group_1__2__Impl17801 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group__0__Impl_in_rule__Multiplication__Group__017837 = new BitSet(new long[]{0x00000000E0000000L});
    public static final BitSet FOLLOW_rule__Multiplication__Group__1_in_rule__Multiplication__Group__017840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePrimary_in_rule__Multiplication__Group__0__Impl17867 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group__1__Impl_in_rule__Multiplication__Group__117896 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__0_in_rule__Multiplication__Group__1__Impl17923 = new BitSet(new long[]{0x00000000E0000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__0__Impl_in_rule__Multiplication__Group_1__017958 = new BitSet(new long[]{0x00000000E0000000L});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__1_in_rule__Multiplication__Group_1__017961 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__1__Impl_in_rule__Multiplication__Group_1__118019 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__2_in_rule__Multiplication__Group_1__118022 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__OperationAssignment_1_1_in_rule__Multiplication__Group_1__1__Impl18049 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__2__Impl_in_rule__Multiplication__Group_1__218079 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__RightAssignment_1_2_in_rule__Multiplication__Group_1__2__Impl18106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_0__0__Impl_in_rule__Primary__Group_0__018142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
    public static final BitSet FOLLOW_rule__Primary__Group_0__1_in_rule__Primary__Group_0__018145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_0__1__Impl_in_rule__Primary__Group_0__118203 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_0_1_in_rule__Primary__Group_0__1__Impl18230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_1__0__Impl_in_rule__Primary__Group_1__018264 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Primary__Group_1__1_in_rule__Primary__Group_1__018267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_1__1__Impl_in_rule__Primary__Group_1__118325 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_1_1_in_rule__Primary__Group_1__1__Impl18352 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_2__0__Impl_in_rule__Primary__Group_2__018386 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Primary__Group_2__1_in_rule__Primary__Group_2__018389 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_2__1__Impl_in_rule__Primary__Group_2__118447 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_2_1_in_rule__Primary__Group_2__1__Impl18474 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_3__0__Impl_in_rule__Primary__Group_3__018508 = new BitSet(new long[]{0x0000000000000000L,0x000000000FE00028L});
    public static final BitSet FOLLOW_rule__Primary__Group_3__1_in_rule__Primary__Group_3__018511 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_3__1__Impl_in_rule__Primary__Group_3__118569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_3_1_in_rule__Primary__Group_3__1__Impl18596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_4__0__Impl_in_rule__Primary__Group_4__018630 = new BitSet(new long[]{0x00000000180001E0L});
    public static final BitSet FOLLOW_rule__Primary__Group_4__1_in_rule__Primary__Group_4__018633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_4__1__Impl_in_rule__Primary__Group_4__118691 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_4_1_in_rule__Primary__Group_4__1__Impl18718 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_5__0__Impl_in_rule__Primary__Group_5__018752 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Primary__Group_5__1_in_rule__Primary__Group_5__018755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_5__1__Impl_in_rule__Primary__Group_5__118813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_5_1_in_rule__Primary__Group_5__1__Impl18840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_6__0__Impl_in_rule__Primary__Group_6__018874 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Primary__Group_6__1_in_rule__Primary__Group_6__018877 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Primary__Group_6__0__Impl18905 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_6__1__Impl_in_rule__Primary__Group_6__118936 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__Primary__Group_6__2_in_rule__Primary__Group_6__118939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAddition_in_rule__Primary__Group_6__1__Impl18966 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_6__2__Impl_in_rule__Primary__Group_6__218995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__Primary__Group_6__2__Impl19023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_7__0__Impl_in_rule__Primary__Group_7__019060 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Primary__Group_7__1_in_rule__Primary__Group_7__019063 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__Group_7__1__Impl_in_rule__Primary__Group_7__119121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Primary__ValueAssignment_7_1_in_rule__Primary__Group_7__1__Impl19148 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryFormula__Group__0__Impl_in_rule__LibraryFormula__Group__019182 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__LibraryFormula__Group__1_in_rule__LibraryFormula__Group__019185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryFormula__ModuleAssignment_0_in_rule__LibraryFormula__Group__0__Impl19212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryFormula__Group__1__Impl_in_rule__LibraryFormula__Group__119242 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__LibraryFormula__Group__2_in_rule__LibraryFormula__Group__119245 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__LibraryFormula__Group__1__Impl19273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryFormula__Group__2__Impl_in_rule__LibraryFormula__Group__219304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryFormula__ActionAssignment_2_in_rule__LibraryFormula__Group__2__Impl19331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group__0__Impl_in_rule__Predicate__Group__019367 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Predicate__Group__1_in_rule__Predicate__Group__019370 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group__1__Impl_in_rule__Predicate__Group__119428 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__Predicate__Group__2_in_rule__Predicate__Group__119431 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__IdAssignment_1_in_rule__Predicate__Group__1__Impl19458 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group__2__Impl_in_rule__Predicate__Group__219488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__0_in_rule__Predicate__Group__2__Impl19515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__0__Impl_in_rule__Predicate__Group_2__019552 = new BitSet(new long[]{0x00040C00180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__1_in_rule__Predicate__Group_2__019555 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Predicate__Group_2__0__Impl19584 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__1__Impl_in_rule__Predicate__Group_2__119616 = new BitSet(new long[]{0x00040C00180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__2_in_rule__Predicate__Group_2__119619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1__0_in_rule__Predicate__Group_2__1__Impl19646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__2__Impl_in_rule__Predicate__Group_2__219677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__Predicate__Group_2__2__Impl19705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1__0__Impl_in_rule__Predicate__Group_2_1__019742 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1__1_in_rule__Predicate__Group_2_1__019745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__TermsAssignment_2_1_0_in_rule__Predicate__Group_2_1__0__Impl19772 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1__1__Impl_in_rule__Predicate__Group_2_1__119802 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1_1__0_in_rule__Predicate__Group_2_1__1__Impl19829 = new BitSet(new long[]{0x0000200000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1_1__0__Impl_in_rule__Predicate__Group_2_1_1__019864 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1_1__1_in_rule__Predicate__Group_2_1_1__019867 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__Predicate__Group_2_1_1__0__Impl19895 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2_1_1__1__Impl_in_rule__Predicate__Group_2_1_1__119926 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__TermsAssignment_2_1_1_1_in_rule__Predicate__Group_2_1_1__1__Impl19953 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_0__0__Impl_in_rule__Type__Group_0__019987 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Type__Group_0__1_in_rule__Type__Group_0__019990 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_0__1__Impl_in_rule__Type__Group_0__120048 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_0_1_in_rule__Type__Group_0__1__Impl20075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_1__0__Impl_in_rule__Type__Group_1__020109 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Type__Group_1__1_in_rule__Type__Group_1__020112 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_1__1__Impl_in_rule__Type__Group_1__120170 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_1_1_in_rule__Type__Group_1__1__Impl20197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_2__0__Impl_in_rule__Type__Group_2__020231 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Type__Group_2__1_in_rule__Type__Group_2__020234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_2__1__Impl_in_rule__Type__Group_2__120292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_2_1_in_rule__Type__Group_2__1__Impl20319 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_3__0__Impl_in_rule__Type__Group_3__020353 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Type__Group_3__1_in_rule__Type__Group_3__020356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_3__1__Impl_in_rule__Type__Group_3__120414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_3_1_in_rule__Type__Group_3__1__Impl20441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_4__0__Impl_in_rule__Type__Group_4__020475 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Type__Group_4__1_in_rule__Type__Group_4__020478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_4__1__Impl_in_rule__Type__Group_4__120536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_4_1_in_rule__Type__Group_4__1__Impl20563 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_5__0__Impl_in_rule__Type__Group_5__020597 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Type__Group_5__1_in_rule__Type__Group_5__020600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_5__1__Impl_in_rule__Type__Group_5__120658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_5_1_in_rule__Type__Group_5__1__Impl20685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_6__0__Impl_in_rule__Type__Group_6__020719 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Type__Group_6__1_in_rule__Type__Group_6__020722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_6__1__Impl_in_rule__Type__Group_6__120780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_6_1_in_rule__Type__Group_6__1__Impl20807 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_7__0__Impl_in_rule__Type__Group_7__020841 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_rule__Type__Group_7__1_in_rule__Type__Group_7__020844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_7__1__Impl_in_rule__Type__Group_7__120902 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_7_1_in_rule__Type__Group_7__1__Impl20929 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8__0__Impl_in_rule__Type__Group_8__020963 = new BitSet(new long[]{0x0000000000000000L,0x000000000FE00028L});
    public static final BitSet FOLLOW_rule__Type__Group_8__1_in_rule__Type__Group_8__020966 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8__1__Impl_in_rule__Type__Group_8__121024 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__0_in_rule__Type__Group_8__1__Impl21051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__0__Impl_in_rule__Type__Group_8_1__021085 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__1_in_rule__Type__Group_8_1__021088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_69_in_rule__Type__Group_8_1__0__Impl21116 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__1__Impl_in_rule__Type__Group_8_1__121147 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__2_in_rule__Type__Group_8_1__121150 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Type__Group_8_1__1__Impl21178 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__2__Impl_in_rule__Type__Group_8_1__221209 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__3_in_rule__Type__Group_8_1__221212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__TypeAssignment_8_1_2_in_rule__Type__Group_8_1__2__Impl21239 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Group_8_1__3__Impl_in_rule__Type__Group_8_1__321269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Type__Group_8_1__3__Impl21297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Variable__Group__0__Impl_in_rule__Variable__Group__021336 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__Variable__Group__1_in_rule__Variable__Group__021339 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Variable__TypeAssignment_0_in_rule__Variable__Group__0__Impl21366 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Variable__Group__1__Impl_in_rule__Variable__Group__121396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Variable__ValueAssignment_1_in_rule__Variable__Group__1__Impl21423 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__Group__0__Impl_in_rule__Assignment__Group__021457 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_rule__Assignment__Group__1_in_rule__Assignment__Group__021460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__VariableAssignment_0_in_rule__Assignment__Group__0__Impl21487 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__Group__1__Impl_in_rule__Assignment__Group__121517 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__Assignment__Group__2_in_rule__Assignment__Group__121520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_rule__Assignment__Group__1__Impl21548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__Group__2__Impl_in_rule__Assignment__Group__221579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__ValueAssignment_2_in_rule__Assignment__Group__2__Impl21606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__Group__0__Impl_in_rule__BeliefUpdate__Group__021642 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__Group__1_in_rule__BeliefUpdate__Group__021645 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__TypeAssignment_0_in_rule__BeliefUpdate__Group__0__Impl21672 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__Group__1__Impl_in_rule__BeliefUpdate__Group__121702 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__PredicateAssignment_1_in_rule__BeliefUpdate__Group__1__Impl21729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Block__Group__0__Impl_in_rule__Block__Group__021763 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__Block__Group__1_in_rule__Block__Group__021766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Block__Group__1__Impl_in_rule__Block__Group__121824 = new BitSet(new long[]{0x2000001B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__Block__Group__2_in_rule__Block__Group__121827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Block__Group__1__Impl21855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Block__Group__2__Impl_in_rule__Block__Group__221886 = new BitSet(new long[]{0x2000001B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__Block__Group__3_in_rule__Block__Group__221889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Block__StepsAssignment_2_in_rule__Block__Group__2__Impl21916 = new BitSet(new long[]{0x2000000B18000202L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__Block__Group__3__Impl_in_rule__Block__Group__321947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Block__Group__3__Impl21975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__0__Impl_in_rule__SynchronizedBlock__Group__022014 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__1_in_rule__SynchronizedBlock__Group__022017 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_71_in_rule__SynchronizedBlock__Group__0__Impl22045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__1__Impl_in_rule__SynchronizedBlock__Group__122076 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__2_in_rule__SynchronizedBlock__Group__122079 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__SynchronizedBlock__Group__1__Impl22107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__2__Impl_in_rule__SynchronizedBlock__Group__222138 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__3_in_rule__SynchronizedBlock__Group__222141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__TokenAssignment_2_in_rule__SynchronizedBlock__Group__2__Impl22168 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__3__Impl_in_rule__SynchronizedBlock__Group__322198 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__4_in_rule__SynchronizedBlock__Group__322201 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__SynchronizedBlock__Group__3__Impl22229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__Group__4__Impl_in_rule__SynchronizedBlock__Group__422260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SynchronizedBlock__BlockAssignment_4_in_rule__SynchronizedBlock__Group__4__Impl22287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__Group__0__Impl_in_rule__ForEach__Group__022327 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__ForEach__Group__1_in_rule__ForEach__Group__022330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_72_in_rule__ForEach__Group__0__Impl22358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__Group__1__Impl_in_rule__ForEach__Group__122389 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__ForEach__Group__2_in_rule__ForEach__Group__122392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__ForEach__Group__1__Impl22420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__Group__2__Impl_in_rule__ForEach__Group__222451 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__ForEach__Group__3_in_rule__ForEach__Group__222454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__GuardAssignment_2_in_rule__ForEach__Group__2__Impl22481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__Group__3__Impl_in_rule__ForEach__Group__322511 = new BitSet(new long[]{0x2000000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__ForEach__Group__4_in_rule__ForEach__Group__322514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__ForEach__Group__3__Impl22542 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__Group__4__Impl_in_rule__ForEach__Group__422573 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ForEach__BodyAssignment_4_in_rule__ForEach__Group__4__Impl22600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__GoalStep__Group__0__Impl_in_rule__GoalStep__Group__022640 = new BitSet(new long[]{0x2000000000000000L});
    public static final BitSet FOLLOW_rule__GoalStep__Group__1_in_rule__GoalStep__Group__022643 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__GoalStep__SpawnedAssignment_0_in_rule__GoalStep__Group__0__Impl22670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__GoalStep__Group__1__Impl_in_rule__GoalStep__Group__122701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__GoalStep__GoalAssignment_1_in_rule__GoalStep__Group__1__Impl22728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__0__Impl_in_rule__SendMessage__Group__022762 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__1_in_rule__SendMessage__Group__022765 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_73_in_rule__SendMessage__Group__0__Impl22793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__1__Impl_in_rule__SendMessage__Group__122824 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__SendMessage__Group__2_in_rule__SendMessage__Group__122827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__SendMessage__Group__1__Impl22855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__2__Impl_in_rule__SendMessage__Group__222886 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__3_in_rule__SendMessage__Group__222889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__PerformativeAssignment_2_in_rule__SendMessage__Group__2__Impl22916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__3__Impl_in_rule__SendMessage__Group__322946 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__SendMessage__Group__4_in_rule__SendMessage__Group__322949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__SendMessage__Group__3__Impl22977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__4__Impl_in_rule__SendMessage__Group__423008 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__5_in_rule__SendMessage__Group__423011 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__AgentAssignment_4_in_rule__SendMessage__Group__4__Impl23038 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__5__Impl_in_rule__SendMessage__Group__523068 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__6_in_rule__SendMessage__Group__523071 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__SendMessage__Group__5__Impl23099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__6__Impl_in_rule__SendMessage__Group__623130 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__7_in_rule__SendMessage__Group__623133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__ContentAssignment_6_in_rule__SendMessage__Group__6__Impl23160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SendMessage__Group__7__Impl_in_rule__SendMessage__Group__723190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__SendMessage__Group__7__Impl23218 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__0__Impl_in_rule__EISSetup__Group__023265 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__1_in_rule__EISSetup__Group__023268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_74_in_rule__EISSetup__Group__0__Impl23296 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__1__Impl_in_rule__EISSetup__Group__123327 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__2_in_rule__EISSetup__Group__123330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__EISSetup__Group__1__Impl23358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__2__Impl_in_rule__EISSetup__Group__223389 = new BitSet(new long[]{0x0000280000000000L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__3_in_rule__EISSetup__Group__223392 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__IdAssignment_2_in_rule__EISSetup__Group__2__Impl23419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__3__Impl_in_rule__EISSetup__Group__323449 = new BitSet(new long[]{0x0000280000000000L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__4_in_rule__EISSetup__Group__323452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group_3__0_in_rule__EISSetup__Group__3__Impl23479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group__4__Impl_in_rule__EISSetup__Group__423510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__EISSetup__Group__4__Impl23538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group_3__0__Impl_in_rule__EISSetup__Group_3__023579 = new BitSet(new long[]{0x0000000000000030L});
    public static final BitSet FOLLOW_rule__EISSetup__Group_3__1_in_rule__EISSetup__Group_3__023582 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__EISSetup__Group_3__0__Impl23610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__Group_3__1__Impl_in_rule__EISSetup__Group_3__123641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__JarAssignment_3_1_in_rule__EISSetup__Group_3__1__Impl23668 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__0__Impl_in_rule__EISPerform__Group__023702 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__1_in_rule__EISPerform__Group__023705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_75_in_rule__EISPerform__Group__0__Impl23733 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__1__Impl_in_rule__EISPerform__Group__123764 = new BitSet(new long[]{0x0000000000000210L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__2_in_rule__EISPerform__Group__123767 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__EISPerform__Group__1__Impl23795 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__2__Impl_in_rule__EISPerform__Group__223826 = new BitSet(new long[]{0x0000000000000210L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__3_in_rule__EISPerform__Group__223829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group_2__0_in_rule__EISPerform__Group__2__Impl23856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__3__Impl_in_rule__EISPerform__Group__323887 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__4_in_rule__EISPerform__Group__323890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__ActionAssignment_3_in_rule__EISPerform__Group__3__Impl23917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group__4__Impl_in_rule__EISPerform__Group__423947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__EISPerform__Group__4__Impl23975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group_2__0__Impl_in_rule__EISPerform__Group_2__024016 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_rule__EISPerform__Group_2__1_in_rule__EISPerform__Group_2__024019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__IdAssignment_2_0_in_rule__EISPerform__Group_2__0__Impl24046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISPerform__Group_2__1__Impl_in_rule__EISPerform__Group_2__124076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_rule__EISPerform__Group_2__1__Impl24104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__0__Impl_in_rule__If__Group__024139 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__If__Group__1_in_rule__If__Group__024142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_76_in_rule__If__Group__0__Impl24170 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__1__Impl_in_rule__If__Group__124201 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__If__Group__2_in_rule__If__Group__124204 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__If__Group__1__Impl24232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__2__Impl_in_rule__If__Group__224263 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__If__Group__3_in_rule__If__Group__224266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__GuardAssignment_2_in_rule__If__Group__2__Impl24293 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__3__Impl_in_rule__If__Group__324323 = new BitSet(new long[]{0x2000000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__If__Group__4_in_rule__If__Group__324326 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__If__Group__3__Impl24354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__4__Impl_in_rule__If__Group__424385 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_rule__If__Group__5_in_rule__If__Group__424388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__IfStepAssignment_4_in_rule__If__Group__4__Impl24415 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group__5__Impl_in_rule__If__Group__524445 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group_5__0_in_rule__If__Group__5__Impl24472 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group_5__0__Impl_in_rule__If__Group_5__024515 = new BitSet(new long[]{0x2000000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__If__Group_5__1_in_rule__If__Group_5__024518 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_77_in_rule__If__Group_5__0__Impl24547 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group_5__1__Impl_in_rule__If__Group_5__124579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__ElseStepAssignment_5_1_in_rule__If__Group_5__1__Impl24606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryAction__Group__0__Impl_in_rule__LibraryAction__Group__024640 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__LibraryAction__Group__1_in_rule__LibraryAction__Group__024643 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryAction__ModuleAssignment_0_in_rule__LibraryAction__Group__0__Impl24670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryAction__Group__1__Impl_in_rule__LibraryAction__Group__124700 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__LibraryAction__Group__2_in_rule__LibraryAction__Group__124703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__LibraryAction__Group__1__Impl24731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryAction__Group__2__Impl_in_rule__LibraryAction__Group__224762 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LibraryAction__ActionAssignment_2_in_rule__LibraryAction__Group__2__Impl24789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Query__Group__0__Impl_in_rule__Query__Group__024825 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__Query__Group__1_in_rule__Query__Group__024828 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_78_in_rule__Query__Group__0__Impl24856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Query__Group__1__Impl_in_rule__Query__Group__124887 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__Query__Group__2_in_rule__Query__Group__124890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Query__Group__1__Impl24918 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Query__Group__2__Impl_in_rule__Query__Group__224949 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__Query__Group__3_in_rule__Query__Group__224952 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Query__FormulaAssignment_2_in_rule__Query__Group__2__Impl24979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Query__Group__3__Impl_in_rule__Query__Group__325009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__Query__Group__3__Impl25037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRActive__Group__0__Impl_in_rule__TRActive__Group__025076 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TRActive__Group__1_in_rule__TRActive__Group__025079 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_79_in_rule__TRActive__Group__0__Impl25107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRActive__Group__1__Impl_in_rule__TRActive__Group__125138 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TRActive__Group__2_in_rule__TRActive__Group__125141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TRActive__Group__1__Impl25169 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRActive__Group__2__Impl_in_rule__TRActive__Group__225200 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TRActive__Group__3_in_rule__TRActive__Group__225203 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRActive__PredicateAssignment_2_in_rule__TRActive__Group__2__Impl25230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRActive__Group__3__Impl_in_rule__TRActive__Group__325260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TRActive__Group__3__Impl25288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__Group__0__Impl_in_rule__TRControl__Group__025327 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__TRControl__Group__1_in_rule__TRControl__Group__025330 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__ModeAssignment_0_in_rule__TRControl__Group__0__Impl25357 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__Group__1__Impl_in_rule__TRControl__Group__125387 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TRControl__Group__2_in_rule__TRControl__Group__125390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__TRControl__Group__1__Impl25418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__Group__2__Impl_in_rule__TRControl__Group__225449 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__TRControl__Group__3_in_rule__TRControl__Group__225452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__FunctionAssignment_2_in_rule__TRControl__Group__2__Impl25479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__Group__3__Impl_in_rule__TRControl__Group__325509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__TRControl__Group__3__Impl25537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__Group__0__Impl_in_rule__TypeStep__Group__025576 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
    public static final BitSet FOLLOW_rule__TypeStep__Group__1_in_rule__TypeStep__Group__025579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__VariableAssignment_0_in_rule__TypeStep__Group__0__Impl25606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__Group__1__Impl_in_rule__TypeStep__Group__125636 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__Group_1__0_in_rule__TypeStep__Group__1__Impl25663 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__Group_1__0__Impl_in_rule__TypeStep__Group_1__025698 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FE0002CL});
    public static final BitSet FOLLOW_rule__TypeStep__Group_1__1_in_rule__TypeStep__Group_1__025701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_rule__TypeStep__Group_1__0__Impl25729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__Group_1__1__Impl_in_rule__TypeStep__Group_1__125760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__ValueAssignment_1_1_in_rule__TypeStep__Group_1__1__Impl25787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Wait__Group__0__Impl_in_rule__Wait__Group__025821 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__Wait__Group__1_in_rule__Wait__Group__025824 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_80_in_rule__Wait__Group__0__Impl25852 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Wait__Group__1__Impl_in_rule__Wait__Group__125883 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__Wait__Group__2_in_rule__Wait__Group__125886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__Wait__Group__1__Impl25914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Wait__Group__2__Impl_in_rule__Wait__Group__225945 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__Wait__Group__3_in_rule__Wait__Group__225948 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Wait__FormulaAssignment_2_in_rule__Wait__Group__2__Impl25975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Wait__Group__3__Impl_in_rule__Wait__Group__326005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__Wait__Group__3__Impl26033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__Group__0__Impl_in_rule__When__Group__026072 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__When__Group__1_in_rule__When__Group__026075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_81_in_rule__When__Group__0__Impl26103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__Group__1__Impl_in_rule__When__Group__126134 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__When__Group__2_in_rule__When__Group__126137 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__When__Group__1__Impl26165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__Group__2__Impl_in_rule__When__Group__226196 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__When__Group__3_in_rule__When__Group__226199 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__GuardAssignment_2_in_rule__When__Group__2__Impl26226 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__Group__3__Impl_in_rule__When__Group__326256 = new BitSet(new long[]{0x2000000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__When__Group__4_in_rule__When__Group__326259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__When__Group__3__Impl26287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__Group__4__Impl_in_rule__When__Group__426318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__When__BodyAssignment_4_in_rule__When__Group__4__Impl26345 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__0__Impl_in_rule__While__Group__026385 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_rule__While__Group__1_in_rule__While__Group__026388 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_82_in_rule__While__Group__0__Impl26416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__1__Impl_in_rule__While__Group__126447 = new BitSet(new long[]{0x00040400180003F0L,0x000000000FF0802CL});
    public static final BitSet FOLLOW_rule__While__Group__2_in_rule__While__Group__126450 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_rule__While__Group__1__Impl26478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__2__Impl_in_rule__While__Group__226509 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_rule__While__Group__3_in_rule__While__Group__226512 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__GuardAssignment_2_in_rule__While__Group__2__Impl26539 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__3__Impl_in_rule__While__Group__326569 = new BitSet(new long[]{0x2000000B18000200L,0x000000000FE75FA8L});
    public static final BitSet FOLLOW_rule__While__Group__4_in_rule__While__Group__326572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_rule__While__Group__3__Impl26600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__Group__4__Impl_in_rule__While__Group__426631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__While__BodyAssignment_4_in_rule__While__Group__4__Impl26658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__Group__0__Impl_in_rule__TeleoReactiveRule__Group__026698 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__Group__1_in_rule__TeleoReactiveRule__Group__026701 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__ContextAssignment_0_in_rule__TeleoReactiveRule__Group__0__Impl26728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__Group__1__Impl_in_rule__TeleoReactiveRule__Group__126758 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__Group__2_in_rule__TeleoReactiveRule__Group__126761 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_83_in_rule__TeleoReactiveRule__Group__1__Impl26789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__Group__2__Impl_in_rule__TeleoReactiveRule__Group__226820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__OperationAssignment_2_in_rule__TeleoReactiveRule__Group__2__Impl26847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Number__Group_1__0__Impl_in_rule__Number__Group_1__026883 = new BitSet(new long[]{0x00000000000001E0L});
    public static final BitSet FOLLOW_rule__Number__Group_1__1_in_rule__Number__Group_1__026886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSign_in_rule__Number__Group_1__0__Impl26913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Number__Group_1__1__Impl_in_rule__Number__Group_1__126942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUnsignedNumber_in_rule__Number__Group_1__1__Impl26969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__027002 = new BitSet(new long[]{0x0000010000000000L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__027005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__QualifiedName__Group__0__Impl27032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__127061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl27088 = new BitSet(new long[]{0x0000010000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__027123 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__027126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__QualifiedName__Group_1__0__Impl27154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__127185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__QualifiedName__Group_1__1__Impl27212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibrary_in_rule__Astra__LibrarysAssignment_0_027250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAgent_in_rule__Astra__AgentAssignment_0_127281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__AgentUnitTest__NameAssignment_127312 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgent_in_rule__AgentUnitTest__TestAgentAssignment_327343 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestCase_in_rule__AgentUnitTest__TestCasesAssignment_427374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestAgent__NameAssignment_127409 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestCase__NameAssignment_127444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestStatement_in_rule__TestCase__TestStatementsAssignment_327475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestAgentRun__AgentAssignment_027510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentRunItem_in_rule__TestAgentRun__ItemAssignment_3_127545 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INTEGER_in_rule__TestAgentRunItem__ValueAssignment_0_127576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestAgentRunItem__ValueAssignment_1_127611 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__TestEquals__ErrorAssignment_227646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestEquals__ExpectedsAssignment_427681 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestAgentProperity_in_rule__TestEquals__ActualsAssignment_627716 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestAgentProperity__AgentAssignment_027751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TestAgentProperity__ProperityAlternatives_2_0_in_rule__TestAgentProperity__ProperityAssignment_227786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__TestTrue__ErrorAssignment_227819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestCondition_in_rule__TestTrue__ConditionAssignment_427850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__TestFalse__ErrorAssignment_227881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTestCondition_in_rule__TestFalse__ConditionAssignment_427912 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestVerify__AgentAssignment_027947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestVerify__ItemAssignment_427986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestBeliefs__NameAssignment_228021 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TestBeliefs__BeliefsAssignment_3_1_028052 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TestBeliefs__BeliefsAssignment_3_1_1_128083 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestBelief__NameAssignment_128114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TestBelief__BeliefAssignment_228145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestPlan__NameAssignment_128176 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TestPlan__PlanAssignment_228207 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestEvent__NameAssignment_128238 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMentalEvent_in_rule__TestEvent__EventAssignment_228269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestGoal__NameAssignment_128300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoal_in_rule__TestGoal__GoalAssignment_228331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__TestRule__NameAssignment_128362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEvent_in_rule__TestRule__EventAssignment_228393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__TestRule__ContextAssignment_3_128424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Agent__NameAssignment_228455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Agent__SuperTypesAssignment_3_128490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Agent__SuperTypesAssignment_3_2_128529 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_rule__Agent__ElementsAssignment_528564 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__InitialStatement__FormulaAlternatives_1_0_in_rule__InitialStatement__FormulaAssignment_128595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__Goal__PredicateAssignment_128628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__PlanStatement__IdentfierAssignment_228659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__PlanStatement__PlanAssignment_328690 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEvent_in_rule__RuleStatement__EventAssignment_228721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__RuleStatement__ContextAssignment_3_128752 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__RuleStatement__PlanAssignment_428783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TeleoReactiveFunction__IdentifierAssignment_228814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTeleoReactiveRule_in_rule__TeleoReactiveFunction__RulesAssignment_3_128845 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFormula_in_rule__AND__FormulasAssignment_028876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFormula_in_rule__AND__FormulasAssignment_1_128907 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__Comparison__LeftAssignment_028938 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Comparison__OperationAlternatives_1_0_in_rule__Comparison__OperationAssignment_128969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__Comparison__RightAssignment_229002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__TypeAlternatives_0_0_in_rule__MentalEvent__TypeAssignment_029033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MentalEvent__FormulaAlternatives_1_0_in_rule__MentalEvent__FormulaAssignment_129066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__MessageEvent__PerformativeAssignment_229099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__MessageEvent__SenderAssignment_429130 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__MessageEvent__ContentAssignment_629161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Library__ClazzAssignment_129192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__LibraryTerm__ModuleAssignment_029223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__LibraryTerm__ActionAssignment_229254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__Count__PredicateAssignment_229285 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__List__TermsAssignment_1_1_029316 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__List__TermsAssignment_1_1_1_129347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__ListConstructor__ContextAssignment_229378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__ListConstructor__GuardAssignment_429409 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_84_in_rule__NOT__OpAssignment_029445 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__NOT__FormulaAssignment_129484 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__OperationAlternatives_1_1_0_in_rule__Addition__OperationAssignment_1_129515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAddition_in_rule__Addition__RightAssignment_1_229548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__OperationAlternatives_1_1_0_in_rule__Multiplication__OperationAssignment_1_129579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMultiplication_in_rule__Multiplication__RightAssignment_1_229612 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCount_in_rule__Primary__ValueAssignment_0_129643 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryTerm_in_rule__Primary__ValueAssignment_1_129674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Primary__ValueAssignment_2_129705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleVariable_in_rule__Primary__ValueAssignment_3_129736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNumber_in_rule__Primary__ValueAssignment_4_129767 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Primary__ValueAssignment_5_129798 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleList_in_rule__Primary__ValueAssignment_7_129829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__LibraryFormula__ModuleAssignment_029860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__LibraryFormula__ActionAssignment_229891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Predicate__IdAssignment_129922 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__Predicate__TermsAssignment_2_1_029953 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__Predicate__TermsAssignment_2_1_1_129984 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_85_in_rule__Type__TypeAssignment_0_130021 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_86_in_rule__Type__TypeAssignment_1_130065 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_87_in_rule__Type__TypeAssignment_2_130109 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_88_in_rule__Type__TypeAssignment_3_130153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_89_in_rule__Type__TypeAssignment_4_130197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_90_in_rule__Type__TypeAssignment_5_130241 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_91_in_rule__Type__TypeAssignment_6_130285 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_67_in_rule__Type__TypeAssignment_7_130329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Type__TypeAssignment_8_1_230368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_rule__Variable__TypeAssignment_030399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Variable__ValueAssignment_130430 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__Assignment__VariableAssignment_030461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Assignment__ValueAlternatives_2_0_in_rule__Assignment__ValueAssignment_230492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BeliefUpdate__TypeAlternatives_0_0_in_rule__BeliefUpdate__TypeAssignment_030525 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__BeliefUpdate__PredicateAssignment_130558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__Block__StepsAssignment_230589 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__SynchronizedBlock__TokenAssignment_230620 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBlock_in_rule__SynchronizedBlock__BlockAssignment_430651 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__ForEach__GuardAssignment_230682 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__ForEach__BodyAssignment_430713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_rule__GoalStep__SpawnedAssignment_030749 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleGoal_in_rule__GoalStep__GoalAssignment_130788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__SendMessage__PerformativeAssignment_230819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTerm_in_rule__SendMessage__AgentAssignment_430850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__SendMessage__ContentAssignment_630881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__IdAlternatives_2_0_in_rule__EISSetup__IdAssignment_230912 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__EISSetup__JarAlternatives_3_1_0_in_rule__EISSetup__JarAssignment_3_130945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__EISPerform__IdAssignment_2_030978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__EISPerform__ActionAssignment_331009 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__If__GuardAssignment_231040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__If__IfStepAssignment_431071 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__If__ElseStepAssignment_5_131102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_rule__LibraryAction__ModuleAssignment_031133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__LibraryAction__ActionAssignment_231164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__Query__FormulaAssignment_231196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TRActive__PredicateAssignment_231227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TRControl__ModeAlternatives_0_0_in_rule__TRControl__ModeAssignment_031258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePredicate_in_rule__TRControl__FunctionAssignment_231291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleVariable_in_rule__TypeStep__VariableAssignment_031322 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeStep__ValueAlternatives_1_1_0_in_rule__TypeStep__ValueAssignment_1_131353 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__Wait__FormulaAssignment_231386 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__When__GuardAssignment_231417 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__When__BodyAssignment_431448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__While__GuardAssignment_231479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStatement_in_rule__While__BodyAssignment_431510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAND_in_rule__TeleoReactiveRule__ContextAssignment_031541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TeleoReactiveRule__OperationAlternatives_2_0_in_rule__TeleoReactiveRule__OperationAssignment_231572 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComparison_in_synpred41_InternalAstra5686 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLibraryFormula_in_synpred42_InternalAstra5703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNOT_in_synpred43_InternalAstra5720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Addition__Group_1__0_in_synpred104_InternalAstra17618 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Multiplication__Group_1__0_in_synpred105_InternalAstra17923 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Predicate__Group_2__0_in_synpred106_InternalAstra19515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__If__Group_5__0_in_synpred113_InternalAstra24472 = new BitSet(new long[]{0x0000000000000002L});

}